为一列单元格中的每个定界值展开 Table 行

Expand Table Rows for Each Delimited Value in One Column's Cells

我是一名 Excel VBA 程序员,最近发现了 Power Query 和 Power BI。

通常,我会收到更改要求,例如:

进入一种非旋转版本,如下所示:

这完全可以在 VBA 中完成,但是看了几个 Power Query 视频(现在订购了三本书!)似乎在 Power Query 中完成效率更高。

我了解了总体思路(例如,从分隔列表中创建 table)但不知道实际步骤的语言。我真的很想学习这些新工具。

我可以买元音吗? Phone朋友?

  1. 使用 From Table
  2. 将 table 导入 Power Query
  3. 单击第二列并从功能区中选择 "Split Column | By Delimiter"。选择逗号作为分隔符并单击确定。
  4. 右键单击第一列并选择 "Unpivot Other Columns"。
  5. 单击“属性”列,然后单击功能区中的 "Remove Columns"。

如果您转到高级编辑器,您可以看到用于生成此代码的代码:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type","Column2",Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv),{"Column2.1", "Column2.2", "Column2.3"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column2.1", type text}, {"Column2.2", type text}, {"Column2.3", type text}}),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type1", {"Column1"}, "Attribute", "Value"),
    #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Attribute"})
in
    #"Removed Columns"