如何提取字符串中的每个数字(PowerBI)?
How to Extract each number in a string (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
如果提取完整的日期和 phone 数字太困难,我可以接受将每个元素放入其自己的列中。提前致谢。
我们可以利用一个 'is value' 函数。
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"
我有一个包含数字和字符的自由格式列。我的目标是能够将每个数字提取到它自己的列中。计算列或 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
如果提取完整的日期和 phone 数字太困难,我可以接受将每个元素放入其自己的列中。提前致谢。
我们可以利用一个 'is value' 函数。
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"