#excel #powerquery #m
#excel #powerquery #m
Вопрос:
Я получаю указанную выше ошибку, когда пытаюсь запустить эту функцию для текстового столбца в power query [Excel]. Столбец содержит разные имена, и эта функция проверяет, есть ли в записи «AbbVie», «Roche» или «Pfizer». Он возвращает имена из списка, который присутствует в записи.
(txt as text) =>
[
create_val = (val as text,check as text, output as text) =>
let
output = if Text.Contains(val,check)
then Text.Combine({output, check},",")
else output
in
output,
final_value = List.Accumulate({"AbbVie","Roche","Pfizer"},"",(state,current) => create_val(txt,current,state))
][final_value]
Комментарии:
1. Помимо возврата начальной запятой, ваша функция, похоже, работает нормально автономно. Какой тип ввода приводит к ошибке, которую вы видите?
2. Я вызываю его в столбце моей таблицы. Столбец содержит только текстовые значения, например: Arbeitsgemeinschaft Gynakologische Onkologie AGO-Исследовательская группа по раку яичников Швейцарская группа клинических исследований рака — SAKK
Ответ №1:
Я тоже боролся с этим, поэтому я хотел бы поделиться тем, как я это решил.
Я использовал пользовательскую функцию рекурсивно, как средство реализации цикла. Оказывается, я изменял переменные из определения функции, то есть переменные, с которыми была вызвана функция. Объявляя локальные переменные, функция работала как ожидалось.