【问题标题】:Power BI - extract number from text string based on conditionsPower BI - 根据条件从文本字符串中提取数字
【发布时间】:2018-09-20 21:51:06
【问题描述】:

我进行了广泛的搜索,我不认为这是重复,但肯定是以前问题的延伸。我正在尝试从 Power BI 函数中的文本字符串中提取数字。我已使用以下方法成功地将字符串中的数字提取为一个值:

Text.Combine(
  List.RemoveNulls(
    List.Transform(
      Text.ToList([string_col]),
    each if Value.Is(Value.FromText(_), type number) 
    then _ else null)
    )
  )

当我感兴趣的数字是字符串中唯一的数字时,使用此代码效果很好,例如:

“引入 1234567 cmets”结果为 1234567

但是,当字符串中出现多个不同的数字时,我无法解决提取我的数字的问题,例如:

“打开 1234567 cmets,50 告诉我这是重复”结果为 123456750

我需要做的是拉出符合条件的字符串中的数字(在我的情况下是一个)。对于我的特定问题,我需要提取的数字将始终是字符串中唯一的 7 位数字,所以我觉得这应该是一个更直接的答案?

有没有办法使用我提供的函数或类似的方法仅提取 7 位数字?如果我离基地很远,有人可以让我走上正确的道路吗?

一如既往,非常感谢社区的帮助。

迪德里希

【问题讨论】:

标签: powerbi dax


【解决方案1】:

首先,您可以使用 Text.Select 函数提取所有数字。

FirstStep =
Table.AddColumn(Source, "MyNumberColumn", each Text.Select([MyStringColumn], {"0".."9"}))

我在 Erik Svensen 的这篇博文中找到了这个解决方案: https://eriksvensen.wordpress.com/2018/03/06/extraction-of-number-or-text-from-a-column-with-both-text-and-number-powerquery-powerbi

对于您的特定要求,您可能需要将 NumberColumn 列输入为文本:

FirstStep =
Table.AddColumn(
    Source,
    "MyTempNumberColumn",
    each Text.Select([MyStringColumn], {"0".."9"}),
    type text)

从那里,根据结果的长度,您可以根据需要多次测试原始字符串中是否存在七个字符序列,直到到达仅由数字组成的新序列的末尾。

SecondStep=
Table.AddColumn("My7numbers",
    each if Text.Length([MyNumberColumn]) = 7
        then [MyTempNumberColumn]
    else if 
       Text.Contains([MyStringColumn],
            Text.Range([MyTempNumberColumn], 0, 7))
    then
       Text.Range([MyTempNumberColumn], 0, 7))
    else if
       Text.Contains([MyStringColumn],
           Text.Range([MyTempNumberColumn], 1, 7)
    then
       Text.Range([MyTempNumberColumn], 1, 7))

根据您可以获得多少数字,可能值得尝试在一个函数中使用 Liste.Generate,该函数将给出 [MyTempNumberColumn] 中每 7 个数字序列的列表,无论其长度如何。

https://docs.microsoft.com/en-us/powerquery-m/list-generate

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2012-11-22
    相关资源
    最近更新 更多