Power Query - 如何分隔值,并将它们添加到行
Power Query - how to separate values, and add them to rows
如何分隔值,并将它们添加到行中?使用 Power Query
假设您的输入 table 被命名为 Table1,您有一个 header 行标记为 "a" 和 "b",并且您想拆分“,”然后我的方法似乎有效:
(a) 删除 b 并拆分 a 然后添加索引 (b) 删除 a 并拆分 b 然后添加索引 (c) 合并部分 a 和 b (d) 选择索引列并逆透视其他列以删除空值 (e) 选择索引列和枢轴组合部分 (f) 转置整个 table 以返回原始 row/column 视图
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Removed Columns" = Table.RemoveColumns(Source,{"a"}),
#"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Removed Columns", {{"b", Splitter.SplitTextByDelimiter(", ", QuoteStyle.None), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "b"),
#"Index" = Table.AddIndexColumn(#"Split Column by Delimiter", "Index", 1, 1),
#"Removed Columns1" = Table.RemoveColumns(Source,{"b"}),
#"Split Column by Delimiter2" = Table.ExpandListColumn(Table.TransformColumns(#"Removed Columns1", {{"a", Splitter.SplitTextByDelimiter(", ", QuoteStyle.None), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "a"),
#"Index2" = Table.AddIndexColumn(#"Split Column by Delimiter2", "Index", 1, 1),
#"Consolidated" = #"Index" & #"Index2",
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Consolidated, {"Index"}, "Attribute", "Value"),
#"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Unpivoted Other Columns", {{"Index", type text}}), List.Distinct(Table.TransformColumnTypes(#"Unpivoted Other Columns", {{"Index", type text}})[Index]), "Index", "Value"),
#"Transposed Table" = Table.Transpose(#"Pivoted Column"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true])
in #"Promoted Headers"
另一个选项是使用 Table1
作为来源:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Transposed Table" = Table.Transpose(Source),
SelectAllColumns = Table.ColumnNames(#"Transposed Table"),
#"Merged Columns" = Table.CombineColumns(#"Transposed Table", SelectAllColumns, Combiner.CombineTextByDelimiter(", ", QuoteStyle.None),"Merged"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Merged Columns", "Merged", Splitter.SplitTextByDelimiter(", ", QuoteStyle.Csv)),
#"Transposed Table1" = Table.Transpose(#"Split Column by Delimiter")
in
#"Transposed Table1"
如何分隔值,并将它们添加到行中?使用 Power Query
假设您的输入 table 被命名为 Table1,您有一个 header 行标记为 "a" 和 "b",并且您想拆分“,”然后我的方法似乎有效: (a) 删除 b 并拆分 a 然后添加索引 (b) 删除 a 并拆分 b 然后添加索引 (c) 合并部分 a 和 b (d) 选择索引列并逆透视其他列以删除空值 (e) 选择索引列和枢轴组合部分 (f) 转置整个 table 以返回原始 row/column 视图
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Removed Columns" = Table.RemoveColumns(Source,{"a"}),
#"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Removed Columns", {{"b", Splitter.SplitTextByDelimiter(", ", QuoteStyle.None), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "b"),
#"Index" = Table.AddIndexColumn(#"Split Column by Delimiter", "Index", 1, 1),
#"Removed Columns1" = Table.RemoveColumns(Source,{"b"}),
#"Split Column by Delimiter2" = Table.ExpandListColumn(Table.TransformColumns(#"Removed Columns1", {{"a", Splitter.SplitTextByDelimiter(", ", QuoteStyle.None), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "a"),
#"Index2" = Table.AddIndexColumn(#"Split Column by Delimiter2", "Index", 1, 1),
#"Consolidated" = #"Index" & #"Index2",
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Consolidated, {"Index"}, "Attribute", "Value"),
#"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Unpivoted Other Columns", {{"Index", type text}}), List.Distinct(Table.TransformColumnTypes(#"Unpivoted Other Columns", {{"Index", type text}})[Index]), "Index", "Value"),
#"Transposed Table" = Table.Transpose(#"Pivoted Column"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true])
in #"Promoted Headers"
另一个选项是使用 Table1
作为来源:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Transposed Table" = Table.Transpose(Source),
SelectAllColumns = Table.ColumnNames(#"Transposed Table"),
#"Merged Columns" = Table.CombineColumns(#"Transposed Table", SelectAllColumns, Combiner.CombineTextByDelimiter(", ", QuoteStyle.None),"Merged"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Merged Columns", "Merged", Splitter.SplitTextByDelimiter(", ", QuoteStyle.Csv)),
#"Transposed Table1" = Table.Transpose(#"Split Column by Delimiter")
in
#"Transposed Table1"