Это возможно, используя 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
Надеюсь, это поможет. Может потребоваться перебор, но он должен получить то, что вы хотите