我从@teylyn in a previous thread得到了一些帮助,以使此代码正常工作。为什么此Power Query操作需要花费很多时间才能完成?
我遇到了一些关于查询操作时间的麻烦。
任务:
的任务是两个独立的联系人列表组合成一个完全新的列表。
我还需要删除共享相同名称和公司名称的重复项。
最后,我需要删除共享相同CompanyID但公司名称不同的联系人。主要列表中的联系人应保存以防发生冲突。
下面的代码工作,但需要很长时间才能完成。
该列表总共包含约8500个联系人。
需要2.5秒来遍历每个联系人,将upp添加到大约6小时直到完成。
我的问题:
为什么这个操作需要很长时间,是有什么办法可以让它更快?
let
Source = Table.Combine({PrimaryContacts, SecondaryContacts}),
#"Removed duplicates" = Table.Distinct(Source, {"CompanyID", "FirstName", "LastName"}),
#"Sorted rows" = Table.Sort(#"Removed duplicates",{{"CompanyID", Order.Ascending}, {"Email", Order.Descending}}),
#"Filtered rows" = Table.SelectRows(#"Sorted rows", each ["FirstName"] <> null and ["FirstName"] <> ""),
#"Added index" = Table.AddIndexColumn(#"Filtered rows", "Index", 10000, 1),
#"Renamed columns" = Table.RenameColumns(#"Added index",{{"Index", "ContactID"}}),
#"Reordered columns" = Table.ReorderColumns(#"Renamed columns",{"ContactID", "CompanyID", "CompanyName", "FirstName", "LastName}), // I have removed 10 columns for privacy reasons
#"Added index1" = Table.AddIndexColumn(#"Reordered columns", "Index", 0, 1),
#"Filtered rows1" = Table.SelectRows(#"Added index1", each (["ContactID"] = 10000 or ["ContactID"] = 10001 or ["ContactID"] = 10002 or ["ContactID"] = 10003 or ["ContactID"] = 10004 or ["ContactID"] = 10005)),
/* The filter above is temporary to be able to check if next step works */
/* It is the step below that takes too much time to finish */
#"Add custom" = Table.AddColumn(#"Filtered rows1", "Delete", each if ["CompanyID"]= #"Reordered columns"{[Index]-1}["CompanyID"] and ["CompanyName"]<> #"Reordered columns"{[Index]-1}["CompanyName"] then "Delete" else null)
in
#"Add custom"
您的解决方案像一个魅力工作! Thanx @marcel! – MrDark