首页 > 解决方案 > 从 Power BI 桌面/查询中的单元格中提取短语

问题描述

我对 Power BI 完全陌生,对那个工具有点迷茫。

我正在尝试从具有很长字符串的单元格中提取短语。我尝试提取的每个短语都以“DI”开头,后跟 4 个随机数,因此格式为 DIXXXX。每个单元格中有随机数量的此类短语,它们被放置在字符串的随机部分中。我要求将每个短语提取到一个单独的单元格中。

请参阅下面的长字符串示例

在此处输入图像描述

此外,不幸的是,由于大量数据不断崩溃,我曾经在 excel 中执行此操作。

excel中的最终结果如下所示

在此处输入图像描述

谁能告诉我如何在 Power Bi 中实现这一目标

标签: powerbipowerquery

解决方案


您可以使用分隔符拆分列(使用“DI”),然后提取每个结果列的前 4 位数字,然后根据需要添加前缀。

像这样的东西:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Column1", Splitter.SplitTextByDelimiter("DI", QuoteStyle.Csv), {"Column1.1", "Column1.2", "Column1.3", "Column1.4"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", type text}, {"Column1.2", type text}, {"Column1.3", type text}}),
    #"Extracted First Characters" = Table.TransformColumns(#"Changed Type1", {{"Column1.2", each Text.Start(_, 4), type text}, {"Column1.3", each Text.Start(_, 4), type text}}),
    #"Removed Columns" = Table.RemoveColumns(#"Extracted First Characters",{"Column1.1"}),
    #"Added Prefix" = Table.TransformColumns(#"Removed Columns", {{"Column1.2", each "DI" & _, type text}}),
    #"Added Prefix1" = Table.TransformColumns(#"Added Prefix", {{"Column1.3", each "DI" & _, type text}}),
    #"Added Prefix2" = Table.TransformColumns(#"Added Prefix1", {{"Column1.4", each "DI" & _, type text}})
in
    #"Added Prefix2"

推荐阅读