我有一个包含以下格式的文本列的表:
"随机文字[ABC - ######]其他随机文字"
对于包含" [ABC - "我想提取一个新专栏" ABC - ######"其中######是随机数,至少有4个数字,但可以更多。
这是我到目前为止所做的工作:
= Table.AddColumn(#"Changed Type", "Custom", each if Text.Contains([TextColumn], "[ABC") then "FOUND" else "NotFound")
但是我无法用数字提取子字符串。
有人能帮帮我吗? 谢谢 DK
答案 0 :(得分:3)
let
tbl = #table({"TextColumn"}, {
{"qwer"},
{"qwer [ABC-1234] asdf"},
{"qwer [ABC-1234]"},
{"[ABC-1234] asdf"}
}),
AddColumn = Table.AddColumn(tbl, "ExtractedNumber", each try Splitter.SplitTextByEachDelimiter({"[ABC-","]"})([TextColumn]){1} otherwise "None")
in
AddColumn
答案 1 :(得分:0)
解决使用:
= Table.AddColumn(#"Changed Type", "Custom", each
if Text.Contains([TextColumn], "[ABC-") then
(Text.Range((Text.Range([TextColumn], (Text.PositionOf([TextColumn], "[ABC-", Occurrence.First))+1, 14)), 0, (Text.PositionOf((Text.Range([TextColumn], (Text.PositionOf([TextColumn], "[ABC-", Occurrence.First))+1, 14)), "]", Occurrence.First))))
else "None")
正如评论中所建议的
Text.PositionOf
会导致更快。
由于