如何创建新列来将行中的正确值解析为列表

时间:2018-08-06 11:47:39

标签: powerbi dax m

我正在努力使用Power Bi创建公式,该公式会将单行值拆分为我想要的值列表。

因此,我有一列称为ID,其值如下:

"ID001122, ID223344""IRRELEVANT TEXT ID112233, MORE IRRELEVANT;ID223344 TEXT"

重要的是保存ID及其后的6个数字。第一个示例将变成一个像这样的列表:{"ID001122","ID223344"}。第二个示例看起来完全相同,但是只是解析了之间的所有不相关文本。

我一直在寻找某种循环公式,可以在其中使用文本查找功能来找到ID的起点,并使用中间功能从起点开始提取8个字符,但是在查找此类字符方面没有任何进展。我尝试用逗号分隔符创建列表,但我注意到并非所有行都有逗号分隔ID。

最终结果将是原始值位于已解析值列表旁边的一列上,然后可以将其扩展到新行。

ID                                    Parsed ID
"Random ID123456, Text;ID23456"       List {"ID123456","ID23456"}

你们中有人有过经历吗?

1 个答案:

答案 0 :(得分:2)

嘿,我使用类似于我的问题的article来找到答案。

这是我的解决方案,无需任何进一步的文本解析,以后我可以做。

each let
    PosList = Text.PositionOf([ID],"ID",Occurrence.All),
    List = List.Transform(PosList, (x) => Text.Middle([ID],x,8)) 
in List

例如,这将导致"(ID343137,ID352973) ID358388"变成{ID343137,ID352973,ID358388}

最终比我想象的要容易。假设解决方案再次依赖于列表!