可以使用Text.PositionOfAny、Text.Range 和变量。您需要创建一个新的计算列,代码如下:
所以 len, position_special, position_n 是变量
len - 获取文本的长度以获取后面的子字符串
position_special = Text.PositionOfAny([Column1], {"-", "_"}, Occurrence.Last)
在列中查找“-”或“_”,如果不存在,则返回 -1。您可以在其自己的自定义列中对此进行测试。
position_n = position_special + 1
只需在字符串中添加 1 作为起始位置
return_value = if position_special <> -1 then Text.Range([Column1], position_n , (len - position_n)) else Text.TrimStart([Column1], "0")
这个部分是IF/THEN/ELSE部分,所以它检查它是否有一个特殊字符,不等于-1,然后将获取范围内的文本,如果没有,它应该找到修剪前导“0” ”。计算列的完整代码为:
let
len = Text.Length([Column1]),
position_special = Text.PositionOfAny([Column1], {"-", "_"}, Occurrence.Last),
position_n = position_special + 1,
return_value = if position_special <> -1 then Text.Range([Column1], position_n , (len - position_n)) else Text.TrimStart([Column1], "0")
in
return_value
希望对您有所帮助。它可能需要整理,但它应该可以满足您的需求