【问题标题】:PowerQuery Table TransformationPowerQuery 表转换
【发布时间】: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


    【解决方案1】:

    只需取消透视其他列:

    unpivot = Table.UnpivotOtherColumns(Source, {"col1"}, "a", "b")[[col1],[b]]
    

    【讨论】:

      【解决方案2】:

      它们是否在不同的列中?然后加载到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"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-13
        • 1970-01-01
        • 1970-01-01
        • 2021-06-28
        • 1970-01-01
        相关资源
        最近更新 更多