Разделите текстовые значения в столбце на основе типа данных первого символа в каждой записи.
Мне нужно, чтобы новый (пользовательский) столбец возвращал текст перед первым разделителем " ", если первый символ текста является числом, иначе возвращал "0,".
If Value.Is(Text.Start([ConsumerAddress],1), type number) Then
Text.BeforeDelimiter([ConsumerAddress]," ") else "0,"
Мне нужно, чтобы новый (пользовательский) столбец возвращал текст перед первым разделителем " ", если первый символ текста является числом, иначе возвращал "0,".
Я не думаю, что Value.Is
это совсем то, что вы хотите. Я бы рекомендовал такую конструкцию try
otherwise
вместе с Number.FromText
:
= Table.AddColumn(#"Previous Step", "Custom",
each try Number.FromText(Text.BeforeDelimiter([ConsumerAddress], " "))
otherwise 0
)
Если текст перед первым пробелом можно преобразовать в число, то это то, что вы получите. Если это невозможно, Number.FromText
выдает ошибку, и вы получаете 0
из другой спецификации.
Редактировать: Если вам нужен критерий только для первого символа, попробуйте следующее:
= Table.AddColumn(#"Previous Step", "Custom",
each if (try Number.FromText(Text.Start([ConsumerAddress], 1)) otherwise 0) <> 0
then Text.BeforeDelimiter([ConsumerAddress], " ")
else "0"
)
Это вернет "12b"
из "12b Maple St"
, тогда как первая версия вернет 0
, поскольку "12b"
нельзя преобразовать в число.
Спасибо. Однако вы не включили критерии, которые оценивают первый символ каждой записи, будь то число или нет, перед синтаксическим анализом функции try.
Спасибо. Вы очень помогли.
Какую ошибку вы получаете?