You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Query如何同时逆透视多组不同属性列?

在Power BI Power Query中批量转换多组产品列的方法

要一次性将Product X: Type/Product X: Cost这类成对列转换为Customer、Product Type、Product Cost的结构,无需多次逆透视再合并,用Power Query的逆透视配对列功能就能直接实现,步骤如下:

  • 打开Power Query编辑器,加载目标表格
  • 选中Customer列(这是需要保留的非透视列)
  • 按住Ctrl键,选中所有Product X: Type和Product X: Cost格式的列
  • 切换到「转换」选项卡,点击「逆透视列」下拉菜单,选择逆透视配对列
  • 此时表格会生成Attribute.1(对应Product编号)、Attribute.2(对应Type/Cost)、Value三列,将这三列分别重命名为Product ID、Metric、Value
  • 选中Metric列,再次切换到「转换」选项卡,点击「透视列」,值列选择Value,取消勾选「聚合值函数」(因为每个Product编号对应唯一的Type和Cost)
  • 最后将自动生成的Type列重命名为Product Type,Cost列重命名为Product Cost,若不需要Product ID可直接删除该列

用M代码直接实现(更高效)

如果需要批量处理大量Product组,直接编写M代码更快捷,示例代码如下:

let
    源 = Excel.CurrentWorkbook(){[Name="你的表名"]}[Content], // 替换为你的数据源
    // 执行配对逆透视,指定保留列和成对的目标列
    配对逆透视 = Table.UnpivotPairs(源, {"Customer"}, 
        {"Product 1: Type", "Product 1: Cost"}, 
        {"Product 2: Type", "Product 2: Cost"}, 
        "Product ID", "Metric", "Value"),
    // 透视Metric列得到Type和Cost列
    透视列 = Table.Pivot(配对逆透视, List.Distinct(配对逆透视[Metric]), "Metric", "Value"),
    // 重命名列并删除多余的Product ID列
    重命名并整理 = Table.RenameColumns(Table.RemoveColumns(透视列, {"Product ID"}), 
        {{"Type", "Product Type"}, {"Cost", "Product Cost"}})
in
    重命名并整理

内容的提问来源于stack exchange,提问作者Andrew Barrett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 00:36:27