【发布时间】:2020-01-09 13:24:11
【问题描述】:
我希望能够将表中的第一列与所有其他列配对,为两者的每个组合创建一个新行。
我需要能够打开这个:
- 一个 | 1 | 2 | 3
- B | 4 | 5 | 6
- C | 6 | 7 | 9
进入这个:
- 一个 | 1
- 一个 | 2
- 一个 | 3
- B | 4
- B | 5
- B | 6
- C | 7
- C | 8
- C | 9
有什么方法可以只使用 powerquery 来完成吗?
【问题讨论】:
标签: powerquery
我希望能够将表中的第一列与所有其他列配对,为两者的每个组合创建一个新行。
我需要能够打开这个:
进入这个:
有什么方法可以只使用 powerquery 来完成吗?
【问题讨论】:
标签: powerquery
只需取消透视其他列:
unpivot = Table.UnpivotOtherColumns(Source, {"col1"}, "a", "b")[[col1],[b]]
【讨论】:
它们是否在不同的列中?然后加载到powerquery,右键单击第一列,选择unpivot other columns。
它们是否在由 |s 分隔的单个列中?然后在下面使用
右击列,按分隔符拆分列,选择或输入分隔符--自定义-- |,每次出现分隔符时拆分,忽略高级选项
删除查询的后半部分,以便 = Table.SplitColumn(#"更改类型", "Column1", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Column1.1", "Column1.2", "Column1.3", "Column1. 4"}),
变成 = Table.SplitColumn(#"改变类型", "Column1", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv))
右键单击第一列,取消透视其他列
右键属性列,删除列
假设数据在 Table1 中没有列标题或 Column1 的标题列,那么代码是
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Column1", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv)),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Split Column by Delimiter", {"Column1.1"}, "Attribute", "Value"),
#"Removed Columns" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Attribute"})
in #"Removed Columns"
【讨论】: