使用 PowerQuery 在 Excel 中堆叠成对的列
Stacking pairs of columns in Excel with PowerQuery
我在 power 查询中生成了一个 table 当前格式如下
A
Key1
Value1
Key2
Value2
A1
B1
C1
D1
E1
我要
A
Key
Value
A1
B1
C1
A1
D1
E1
如何在幂查询中实现?
- 参考原来的 table,删除第 4 列和第 5 列并将其余列重命名为 A、Key 和 Value。
- 再次参考原来的table,删除第 2 列和第 3 列,并将其余列重命名为 A、Key 和 Value。
- 附加上述 2 个查询
来自 Peter 作品的答案,或使其更通用:
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
base=1, // # leading columns that will repeat
group=2, // followed by groups of 2 columns
Combo = List.Transform(List.Split(List.Skip(Table.ColumnNames(Source),base),group), each List.FirstN(Table.ColumnNames(Source),base) & _),
#"Added Custom" =List.Accumulate(
Combo,
#table({"Column1"}, {}),
(state,current)=> state & Table.Skip(Table.DemoteHeaders(Table.SelectColumns(Source, current)),1)
)
in #"Added Custom"
我在 power 查询中生成了一个 table 当前格式如下
A | Key1 | Value1 | Key2 | Value2 |
---|---|---|---|---|
A1 | B1 | C1 | D1 | E1 |
我要
A | Key | Value |
---|---|---|
A1 | B1 | C1 |
A1 | D1 | E1 |
如何在幂查询中实现?
- 参考原来的 table,删除第 4 列和第 5 列并将其余列重命名为 A、Key 和 Value。
- 再次参考原来的table,删除第 2 列和第 3 列,并将其余列重命名为 A、Key 和 Value。
- 附加上述 2 个查询
来自 Peter 作品的答案,或使其更通用:
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
base=1, // # leading columns that will repeat
group=2, // followed by groups of 2 columns
Combo = List.Transform(List.Split(List.Skip(Table.ColumnNames(Source),base),group), each List.FirstN(Table.ColumnNames(Source),base) & _),
#"Added Custom" =List.Accumulate(
Combo,
#table({"Column1"}, {}),
(state,current)=> state & Table.Skip(Table.DemoteHeaders(Table.SelectColumns(Source, current)),1)
)
in #"Added Custom"