在 PowerBI 中将一列列表拆分为多列

问题描述 投票:0回答:2

我已将一个 JSON 文件导入到 PowerBI 中,它包含一个列,其中的值的类型为“List”。我希望将该列扩展为多个列。

具体来说,数据包含冲刺名称、冲刺的开始日期和结束日期,以及与每个冲刺相关的其他一些值。

尝试使用“扩展到新行”会复制每个 sprint 实例,创建一个如下所示的表,为每个关联值多次复制每个 sprint 实例:

Sprint Name       Value

JAN(S1Dev)     2019-01-01
JAN(S1Dev)     2019-01-13
JAN(S1Dev)     {attribute}
JAN(S1Dev)     {attribute}
JAN(S2Dev)     2019-01-14
JAN(S2Dev)     2019-01-31
JAN(S2Dev)     {attribute}
JAN(S2Dev)     {attribute}
FEB(S1Test)    2019-02-01
FEB(S1Test)    2019-02-15
...            ...

我想做一些类似于“扩展”功能的操作,它使用每个属性创建一个新列而不是一个新行。目前,这无缘无故地大大增加了我的表的大小,同时也使数据几乎无法使用。任何帮助将不胜感激,干杯!

powerbi powerbi-desktop
2个回答
2
投票

我找到了一个非常简单的解决方案,但由于我花了一些时间才弄清楚,我会回答我自己的问题,而不是删除它以帮助将来的其他人...

将 JSON 数据导入 PowerBI 后,首先选择“转换为表”以将数据视为具有可编辑属性的表。

接下来,单击列表列顶部相互远离的箭头,然后选择“提取值”。

选择用于连接值的分隔符,我选择逗号,因为我知道列表中包含的数据中没有任何逗号。如果您的数据中包含逗号,请选择其他内容。同样,如果您的数据包含分隔符之一,请勿选择它作为分隔符。 现在,它应该显示一个以逗号分隔的列表,之前以橙色文本显示“List”。

现在,右键单击该列并选择“拆分列”,然后选择“按分隔符” 选择您之前选择的分隔符,然后在“分割位置”下选择“每次出现分隔符”,然后单击“确定”。

您的列现在应该根据列表分为多个列!


0
投票

我找到了解决这个问题的更简单的方法。 我在“转换为表”步骤之后添加了一个新步骤,并添加了以下公式:

= Table.FromList(#"Convert into table"[Value], (list) => list)

其中“转换为表”是上一步的名称,“值”是列的名称。您可以添加具有自定义列名称的列表作为第三个参数。

我对这个

Table.FromList
功能有点挣扎。它期望列表中的元素是逗号分隔的字符串。但是您可以提供自己的拆分器函数,将每个元素转换为列值列表。由于每个元素已经是一个列表,因此您可以只使用恒等函数:
(a) => a

© www.soinside.com 2019 - 2024. All rights reserved.