Power BI:如何按行索引将JSON记录列的数值转换为独立新列
Power BI 提取JSON固定位置值的操作步骤
- 第一步:进入Power Query编辑器,选中存储JSON的目标列,依次点击顶部「转换」选项卡→「解析」→「JSON」,完成JSON结构转换。
- 第二步:添加原行号标识列,依次点击「添加列」→「索引列」→「从1开始」,命名为
原表行号,用于后续区分不同行的JSON数据。 - 第三步:添加自定义列提取每个JSON行的第一列值,自定义列公式填写:
如果你解析后的JSON直接是嵌套数组结构,公式可简化为:= List.Transform(Table.ToRows(Table.FromRecords([替换为你解析后的JSON列名])), each _{0})
公式运行后,每一行的自定义列都会生成一个包含3个元素的列表,对应你需要的3个第一列数值。= List.Transform([替换为你解析后的JSON列名], each _{0}) - 第四步:选中自定义列,点击列标题右侧的扩展按钮,选择「扩展到新行」,即可把每个列表的3个值拆分为独立行。
- 第五步:给每组同原行号的数值添加位置索引,依次点击「添加列」→「索引列」→「高级」,设置「按列分组」选择
原表行号,起始索引填0,命名为位置索引。 - 第六步:透视列生成最终表格,选中
位置索引列,点击顶部「转换」选项卡→「透视列」,弹出窗口中「值列」选择你刚才提取的数值列,「聚合值函数」选择「不要聚合」,确认后即可得到你需要的结构:每列对应原表一行JSON的3个值,每行对应相同位置索引的数值。
效果验证
以你给出的示例数据为例:
- 原表行号1对应的数值列表为{1479,1481,1486},原表行号2对应的数值列表为{1351,1536,1356}
- 透视后
原表行号1就是新列1,原表行号2就是新列2,完全匹配你期望的输出结果。
内容的提问来源于stack exchange,提问作者thebabs
相关产品推荐
相关产品推荐

