我对 Excel 还很陌生,我认为我需要使用数据透视表来实现这一点,但不太清楚如何使用。
如果有更好的方法来做到这一点,我很乐意学习。
我有:
| pages| | |
|:---- |:------:| -----:|
| 1 |test |mark
| 2 |dog |
| 3 | |
| 4 |mark |
| 5 |cat |test
我想:
| words | pages|
|:---- |------:|
|cat |5
|dog |2
|mark |1,4
|test |1,5
答案1
为了使用数据透视表,您需要首先重塑数据,例如使用 Power Query。
另一种方法是使用基于公式的设置:
=LET(
ζ,A2:C6,
κ,DROP(ζ,,1),
λ,TAKE(ζ,,1),
ξ,SORT(UNIQUE(TOCOL(κ,1))),
HSTACK(ξ,BYROW(ξ,LAMBDA(γ,TEXTJOIN(",",,UNIQUE(TOCOL(IF(κ=γ,λ,"")))))))
)
答案2
PowerQuery 可以完成所有工作。首先,将您的表声明为表格(插入/表格)。请务必指出您的表已经有列标题。
然后将您的表命名为“table”。
然后数据/新查询/来自其他源/空查询。在“高级编辑器”中,复制:
let
Source = Excel.CurrentWorkbook(){[Name="Table"]}[Content],
Unpivoted = Table.UnpivotOtherColumns(Source, {"pages"}, "Attribut", "Words"),
Grouped = Table.Group(Unpivoted, {"Words"}, {{"Pages", each Text.Combine(List.Transform([pages],each Number.ToText(_)),","), type text}}),
Sorted = Table.Sort(Grouped,{{"Words", Order.Ascending}})
in
Sorted
如果您的表格的第一列有“表格”(区分大小写),则此方法有效。