Замените все значения ошибок для всех столбцов после импорта данных (при сохранении строк)

Вопрос: Таблица Excel в качестве источника данных может содержать значения ошибок (#NA, # DIV/0), которые могут нарушить некоторые последующие этапы процесса преобразования в Power Query. В зависимости от следующих шагов мы можем получить не вывод, а ошибку. Так как же справиться с этим делом? Я нашел два стандартных шага в Power Query, чтобы поймать их:

Вопрос:

Таблица Excel в качестве источника данных может содержать значения ошибок (#NA, # DIV/0), которые могут нарушить некоторые последующие этапы процесса преобразования в Power Query.
В зависимости от следующих шагов мы можем получить не вывод, а ошибку. Так как же справиться с этим делом?

Я нашел два стандартных шага в Power Query, чтобы поймать их:

  • Удалить ошибки (интерфейс: Главная/Удалить строки/Удалить ошибки) → все строки с ошибками будут удалены
  • Заменить значения ошибок (UI: Transform/Replace Errors) → столбцы должны быть сначала выбраны для выполнения этих операций.

Первая возможность для меня не является решением, так как я хочу сохранить строки и просто заменить значения ошибок.

В моем случае моя таблица данных будет меняться со временем, это означает, что имя столбца может измениться (например, годы) или появятся новые столбцы. Так что вторая возможность слишком статична, так как я не хочу каждый раз менять скрипт.

Поэтому я попытался получить динамический способ очистки всех столбцов, независимо от имен столбцов (и количества столбцов). Он заменяет ошибки на нулевое значение.

let Source = Excel.CurrentWorkbook(){[Name=»Tabelle1″]}[Content], //Remove errors of all columns of the data source. ColumnName doesn’t play any role Cols = Table.ColumnNames(Source), ColumnListWithParameter = Table.FromColumns({Cols, List.Repeat({«»}, List.Count(Cols))}, {«ColName» as text, «ErrorHandling» as text}), ParameterList = Table.ToRows(ColumnListWithParameter ), ReplaceErrorSource = Table.ReplaceErrorValues(Source, ParameterList) in ReplaceErrorSource

Вот разные три сообщения с запросами, после того как я добавил два новых столбца (с ошибками) к источнику:

Если у кого-то есть другое решение для такой очистки данных, напишите здесь.

Лучший ответ:let src = Excel.CurrentWorkbook(){[Name=»Tabelle1″]}[Content], cols = Table.ColumnNames(src), replace = Table.ReplaceErrorValues(src, List.Transform(cols, each {_, «!»})) in replace

Оцените статью
Добавить комментарий