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

如何用PowerBI的M查询展开键值不一致的Record列?

PowerBI中展开JSON格式字段为键值对的实现方法

可以通过Power Query(M查询)实现需求,具体操作步骤如下:

  • 加载数据到Power Query编辑器:将数据集导入PowerBI后,进入「转换数据」打开Power Query编辑器。
  • 转换CaseData为JSON记录:添加自定义列,使用表达式Json.Document([CaseData])将CaseData列的文本格式JSON转换为PowerBI可识别的记录类型。
  • 将记录转为键值对表格:再次添加自定义列,用表达式Record.ToTable([JsonRecord])把每条记录转换成包含Name(对应目标的Key)和Value的表格。
  • 展开键值对表格:点击自定义列右侧的展开按钮,选择展开Name和Value列,并将Name列重命名为Key。
  • 清理中间列:移除不需要的CaseData和JsonRecord列,得到目标结构。

对应的完整M查询代码示例:

let
    Source = 替换为你的数据源,
    // 转换CaseData为JSON记录
    AddJsonRecord = Table.AddColumn(Source, "JsonRecord", each Json.Document([CaseData])),
    // 把记录转成Key-Value表格
    AddKeyValueTable = Table.AddColumn(AddJsonRecord, "KeyValueTable", each Record.ToTable([JsonRecord])),
    // 展开表格列并重命名
    ExpandedTable = Table.ExpandTableColumn(AddKeyValueTable, "KeyValueTable", {"Name", "Value"}, {"Key", "Value"}),
    // 删除冗余中间列
    CleanedTable = Table.RemoveColumns(ExpandedTable, {"CaseData", "JsonRecord"})
in
    CleanedTable

注意:如果CaseData列本身已经是PowerBI的记录类型(而非文本格式的JSON),可跳过第一步的Json.Document转换,直接对CaseData列执行Record.ToTable操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:57:21