這是我用來產生問題的索引列的查詢:
let
// This has the original parent/child column
Source = #"Parent Child Query",
// Count the number of parents per child
#"Grouped Rows" = Table.Group(Source, {"Attribute:id"}, {{"Count", each Table.RowCount(_), type number}}),
// Add a new column of lists with the indexes per child
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "ParentIndex", each List.Numbers([Count], [Count], -1)),
// Expand the lists in the previous step
#"Expand ParentIndex" = Table.ExpandListColumn(#"Added Custom", "ParentIndex"),
// Create the column name columns (Parent.1, Parent.2, etc)
#"Added Custom1" = Table.AddColumn(#"Expand ParentIndex", "ParentColumn", each "Parent."&Text.From([ParentIndex])),
// Adds an index column that you use when merging with the original table
#"Added Index" = Table.AddIndexColumn(#"Added Custom1", "Index", 0, 1)
in
#"Added Index"
一旦這樣做是我創建另一個查詢持有合併後的結果:
let
// This is the original parent/child column
Source = #"Parent Child Query",
// Add an index column that matches the index column in the previous query
#"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1),
// Merge the two queries based on the index columns
Merge = Table.NestedJoin(#"Added Index",{"Index"},#"Epic Parent Indices",{"Index"},"NewColumn"),
// Expand the new column
#"Expand NewColumn" = Table.ExpandTableColumn(Merge, "NewColumn", {"ParentColumn"}, {"ParentColumn"}),
// Remove the index column
#"Removed Columns" = Table.RemoveColumns(#"Expand NewColumn",{"Index"}),
// Sort the data by attribute and then by Parent column so the columns will be in the right order
#"Sorted Rows" = Table.Sort(#"Removed Columns",{{"Attribute:id", Order.Descending}, {"ParentColumn", Order.Ascending}}),
// Pivot!
#"Pivoted Column" = Table.Pivot(#"Sorted Rows", List.Distinct(#"Sorted Rows"[ParentColumn]), "ParentColumn","Parent:id")
in
#"Pivoted Column"
這裏有三個關鍵步驟:
- 使用Table.Group得到每個孩子元素的父母數量。
- 使用List.Numbers可獲取每個父/子關係的索引值。
- 使用Table.AddIndexColumn添加索引列以用作Table.Join調用中的鍵如果您不這樣做,那麼您將在合併中獲得重複的數據。
「插入函數Combiner.CombineTextByDelimiter(」;「)'」是什麼意思?我不能使用'CombineTextByDelimiter'和'Group By'。 此外,這將工作爲任意數量的父母?這就是我所擁有的 - 我在示例中使用了最多三個,但是我的數據更多。 – Vinay