[英]Excel - Power Query 2016
我認為您要嘗試的是僅將“ Customer
列中每個值的第一個實例加入。 似乎沒有允許您執行此操作的功能或GUI元素(我查看了Power Query M的參考文檔 ,也許我錯過了一些東西)。
為了復制您的數據,我從一些表開始(左表命名為Customers
,右表命名為Orders
):
然后,我使用下面的M
代碼(前幾行只是為了從工作表中獲取表格):
let
customers = Excel.CurrentWorkbook(){[Name = "Customers"]}[Content],
orders = Excel.CurrentWorkbook(){[Name = "Orders"]}[Content],
merged = Table.NestedJoin(orders, {"CUSTOMER"}, customers, {"CUSTOMER"}, "merged", JoinKind.LeftOuter),
indexColumn = Table.AddIndexColumn(merged, "Temporary", 0, 1),
indexes =
let
uniqueCustomers = Table.Distinct(Table.SelectColumns(indexColumn, {"CUSTOMER"})), // Want to keep as table
listOfRecords = Table.ToRecords(uniqueCustomers),
firstOccurenceIndexes = List.Accumulate(listOfRecords, {}, (listState, currentItem) =>
List.Combine({listState, {Table.PositionOf(indexColumn, currentItem, Occurrence.First, "CUSTOMER")}})
)
in
firstOccurenceIndexes,
expandSelectively =
let
toBoolean = Table.TransformColumns(indexColumn, {{"Temporary", each List.Contains(indexes, _), type logical}}),
tableOrNull = Table.AddColumn(toBoolean, "toExpand", each if [Temporary] then [merged] else null),
dropRedundantColumns = Table.RemoveColumns(tableOrNull, {"merged", "Temporary"}),
expand = Table.ExpandTableColumn(dropRedundantColumns, "toExpand", {"FUNDING"})
in
expand
in
expandSelectively
如果您的表名和列名與我的表名和列名匹配(包括區分大小寫),那么您也許可以將上面的所有M
代碼復制粘貼到“高級編輯器”中,並為您工作。 否則,您可能需要根據需要進行調整。
這是將查詢加載到工作表時得到的。
可能會有更好(更有效)的方法來執行此操作,但這是我目前所擁有的。
如果您不使用訂單ID列,那么我建議在合並資金之前在OrderTable
上進行OrderTable
,這樣您最終會得到一個像這樣的表:
Region Customer OrderCount Funding
South A 3 2394
South B 2 4323
South C 1 1234
South D 2 3423
這樣,您就不會有混合的粒度級別,而這些粒度級別不會導致出現總計問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.