首页 > 解决方案 > 如何提取字符串中的每个数字(PowerBI)?

问题描述

我有一个包含数字和字符的自由格式列。我的目标是能够将每个数字提取到自己的列中。计算列或 M 代码很好。这是一个例子:

Segment  Notes
1        WO# 1234567 Call Tony @ 623-623-6236 30 prior to arrival
2        Replaced 2 Hoses 7654321
3        Opened WO5674321 on 11/20/2019

最终我需要的是每个观察中的每个数字在它自己的列中,如下所示:

Segment  Notes                                                       Num1      Num2          Num3
1        WO# 1234567 Call Tony @ 623-623-6236 30 prior to arrival    1234567   623-692-9493  30
2        Replaced 2 Hoses 7654321                                    2         7654321
3        Opened WO5674321 on 11/20/2019                              5674321   11/20/2019

如果提取完整的日期和电话号码太困难,我可以忍受每个元素进入自己的列。提前致谢。

标签: powerbidaxm

解决方案


我们可以利用一个“价值”功能。

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("LY0xC8IwFIT/yvFcK/a9tClugku3gAgdQoagGQohCakI/fdGEe6m7+POWmLqaDEHsKhh1BOuPkbcc9pxgRZ1/FdD9Sh1zRWvDF/r+vaRXGdJ2sAtlOgf4QnBnLewYdLjoIR/gmqCKSE1vJh28QXICcwn6Vv4TM59AA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Segment = _t, Notes = _t]),
    #"Added Custom" = Table.AddColumn(Source, "Custom", each Text.Combine(List.RemoveNulls(List.Transform(Text.ToList([Notes]),each if Value.Is(Value.FromText(_), type number) or List.Contains({" ", "-", "/"}, _) then _ else null))))

in
    #"Added Custom"

在此处输入图像描述


推荐阅读