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

PowerBI PowerQuery 逆透视指定类别值并拆分关联属性列

Power BI Power Query 同偏好维度数据匹配转换方案

核心问题出在之前直接用逆透视没有提取统一的关联键,仅靠行顺序匹配必然容易错位,只要先从Category字段拆分出「偏好序号」「属性类型」两个维度,用双字段精确关联就能100%保证数据匹配正确。

界面可视化操作步骤

  • 导入原始数据源到Power Query编辑器,选中Category列,点击顶部菜单栏「拆分列」→「按分隔符」,分隔符选择空格,拆分为3列,拆分后列名依次修改为PrefPrefix、PrefNo、AttrType,删除无业务意义的PrefPrefix列。此时每一行都会明确标记所属的偏好序号、属性类型(Region/Area/Station)。
  • 筛选AttrType列,仅保留值为Station的行,将这部分查询重命名为StationBase,作为最终结果的基础表。
  • 基于拆分完的全量数据,筛选AttrType列仅保留值为Region的行,只保留id、PrefNo、Value三列,将Value列重命名为Region,得到大区维度匹配表。
  • 基于拆分完的全量数据,筛选AttrType列仅保留值为Area的行,只保留id、PrefNo、Value三列,将Value列重命名为Area,得到片区维度匹配表。
  • 选中StationBase表,点击「合并查询」,关联条件设置为双字段匹配:StationBase表的id等于大区表的id、StationBase表的PrefNo等于大区表的PrefNo,联接类型选内部联接,合并完成后展开关联表的Region列,即可拿到对应行的大区值。
  • 再次对StationBase表执行合并查询,同样用id+PrefNo双字段关联片区匹配表,展开后拿到对应行的片区值。
  • 调整列顺序,删除多余的PrefNo、AttrType列,仅保留id、Category、Value、Region、Area五个字段,导出即为目标结果表。

快速实现:单查询M代码

如果不想逐步骤点击,可以打开Power Query高级编辑器,将下方代码替换原有内容,仅需把源步骤修改为你自己的数据源导入逻辑即可直接使用:

let
    源 = 替换为你自己的数据源导入步骤,
    拆分分类列 = Table.SplitColumn(源, "Category", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"PrefPrefix", "PrefNo", "AttrType"}),
    清理冗余列 = Table.RemoveColumns(拆分分类列,{"PrefPrefix"}),
    站点基础数据 = Table.SelectRows(清理冗余列, each [AttrType] = "Station"),
    大区匹配数据 = Table.RenameColumns(Table.SelectRows(清理冗余列, each [AttrType] = "Region"),{{"Value", "Region"}}),
    片区匹配数据 = Table.RenameColumns(Table.SelectRows(清理冗余列, each [AttrType] = "Area"),{{"Value", "Area"}}),
    关联合并大区 = Table.NestedJoin(站点基础数据, {"id", "PrefNo"}, 大区匹配数据, {"id", "PrefNo"}, "大区关联数据", JoinKind.Inner),
    展开大区字段 = Table.ExpandTableColumn(关联合并大区, "大区关联数据", {"Region"}, {"Region"}),
    关联合并片区 = Table.NestedJoin(展开大区字段, {"id", "PrefNo"}, 片区匹配数据, {"id", "PrefNo"}, "片区关联数据", JoinKind.Inner),
    展开片区字段 = Table.ExpandTableColumn(关联合并片区, "片区关联数据", {"Area"}, {"Area"}),
    调整列顺序 = Table.ReorderColumns(展开片区字段,{"id", "Category", "Value", "Region", "Area"}),
    清理输出 = Table.RemoveColumns(调整列顺序,{"PrefNo", "AttrType"})
in
    清理输出

该方案全程使用id+偏好序号作为唯一关联键,完全不依赖原始数据的行排列顺序,不会出现逆透视操作常见的匹配错位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:30:53