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

如何使用PowerQuery重排数据表结构得到含Market、MyValue列的目标表

解决方案:单查询直接实现目标格式,无需拆分后合并

完全可以通过单条PowerQuery查询完成该需求,核心逻辑是先逆透视所有非国家列,再拆分属性列、透视指标类型,步骤更简洁,也不会出现合并匹配错误的问题。

界面操作步骤(无需手写代码即可完成)

假设你的原始表结构为:第1列是国家,其余列命名规则为[产品类别]_[指标类型](比如手机_Market、手机_MyValue、电脑_Market等),按以下顺序操作:

  • 导入原始数据表到PowerQuery编辑器
  • 选中国家列,右键选择「逆透视其他列」,此时你会得到三列:国家、属性、值
  • 选中属性列,点击「转换」选项卡 -> 「拆分列」-> 「按分隔符」,分隔符选下划线_,拆分位置选「每次出现分隔符时」,拆分后得到两列,默认命名为属性.1、属性.2,分别重命名为产品类别、指标类型
  • 选中指标类型列,点击「转换」选项卡 -> 「透视列」,值列选值,聚合值函数选「不要聚合」
  • 此时自动生成的结果就是你需要的国家、产品类别、Market、MyValue四列目标表

示例M代码参考

你可以根据自己的原始表名、列名调整对应参数:

let
    // 替换下一行的"原始表"为你自己的数据源表名
    源 = Excel.CurrentWorkbook(){[Name="原始表"]}[Content],
    逆透视其他列 = Table.UnpivotOtherColumns(源, {"国家"}, "属性", "值"),
    拆分列 = Table.SplitColumn(逆透视其他列, "属性", Splitter.SplitTextByDelimiter("_", QuoteStyle.Csv), {"产品类别", "指标类型"}),
    透视列 = Table.Pivot(拆分列, List.Distinct(拆分列[指标类型]), "指标类型", "值")
in
    透视列

拆分合并方案的正确操作逻辑

如果你的原始表列名不符合[产品]_[指标]的规则,一定要拆分处理的话,按以下步骤操作可避免合并错误:

  • 拆分两个子表后,逆透视时除了国家列,保留子表对应的指标列名(比如Market子表逆透视后列是国家、产品类别、Market,MyValue子表逆透视后是国家、产品类别、MyValue)
  • 合并时选择国家和产品类别两个列作为匹配键,用内部联接或者完全外部联接,即可正确匹配不会错位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:06:04