Power BI中将无序JSON对象查找值匹配到正确列的实现方案
Power BI 实现方案(Power Query 操作)
不需要手动调整JSON字符串顺序,直接通过解析JSON结构+规则匹配实现,操作步骤如下:
- 进入Power Query编辑器,选中表1,首先添加索引列(用于后续区分原数据行,避免分组混淆):点击「添加列」选项卡 → 索引列 → 从1开始。
- 新增自定义列解析JSON内容,公式为:
= Json.Document([你存储JSON的实际列名])
将公式中的列名替换为你表1里存JSON的列名,得到record类型的解析结果。 - 展开解析后的record为键值对行:点击自定义列右上角的扩展按钮,选择「转换为表」,生成的新表默认包含两列,分别对应JSON的键、值,将两列重命名为
Key、Value,并将Key列的数据类型修改为整数。 - 匹配表2获取条目名称:点击「合并查询」,同时选中表1的
Key、Value两列作为匹配键,选择匹配表为表2,同样选中表2的Key、Value两列作为匹配键,连接类型选「内部」,展开合并后的列,仅保留Entry字段。 - 按规则给条目分类:新增自定义列
字段类型,公式如下:
= let // 替换「索引」为你第一步添加的索引列名 当前行所有Key = Table.SelectRows(#"上一步操作的步骤名", (r) => r[索引] = [索引])[Key], 最小Key = List.Min(当前行所有Key), 最大Key = List.Max(当前行所有Key) in if [Key] = 最小Key then "Fruit" else if [Key] = 最大Key then "Colour" else "Size"
注意替换公式里的「上一步操作的步骤名」为你上一步操作在Power Query右侧「应用步骤」面板里显示的实际名称。
6. 生成最终结果列:选中字段类型列,点击「转换」选项卡 → 透视列,值列选择Entry,聚合值函数选「不要聚合」,即可得到你需要的Fruit、Size、Colour三列,删除多余辅助列后加载回数据模型即可。
内容的提问来源于stack exchange,提问作者thebabs
相关产品推荐
相关产品推荐

