Работа с ошибками в Power Query

В Power Query можно столкнуться с двумя типами ошибок:

  • Ошибки на уровне шага
  • Ошибки на уровне ячеек

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

Ошибка уровня шага

Ошибка на уровне шага предотвращает загрузку запроса и отображает компоненты ошибок на желтой панели.

Ошибка на уровне шага.

  • Причина ошибки: первый раздел перед двоеточием. В приведенном выше примере причина ошибки — Expression.Error.
  • Сообщение об ошибке: раздел непосредственно после причины. В приведенном выше примере сообщение об ошибке — столбец "Столбец" таблицы не найден.
  • Сведения об ошибке: раздел непосредственно после строки Details. В приведенном выше примере сведения об ошибке — Column.

Распространенные ошибки уровня шага

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

Нажмите кнопку ошибки.

Не удается найти источник — DataSource.Error

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

Пример. У вас есть запрос из текстовой плитки, которая была размещена на диске D и создана пользователем A. Пользователь A предоставляет общий доступ к запросу с пользователем B, у которого нет доступа к диску D. Когда этот пользователь пытается выполнить запрос, он получает dataSource.Error , так как в среде нет диска D.

Ошибка источника данных не удалось найти файл, так как в текущей среде нет диска D.

Возможные решения. Вы можете изменить путь к файлу текстового файла на путь, к которому у обоих пользователей есть доступ. Как пользователь B, вы можете изменить путь к файлу, чтобы быть локальной копией одного текстового файла. Если кнопка "Изменить параметры" доступна в области ошибок, ее можно выбрать и изменить путь к файлу.

Столбец таблицы не найден

Эта ошибка обычно активируется, когда шаг делает прямую ссылку на имя столбца, которое не существует в запросе.

Пример. У вас есть запрос из текстового файла, в котором одно из имен столбцов было Столбцом. В запросе есть шаг, который переименовывает этот столбец на date. Но в исходном текстовом файле произошло изменение, и он больше не имеет заголовка столбца с именем Столбца , так как он был изменен вручную на Date. Power Query не может найти заголовок столбца с именем Column, поэтому он не может переименовать столбцы. Отображается ошибка, показанная на следующем рисунке.

Ошибка выражения, столбец таблицы не найден, так как имя столбца было изменено вручную.

Возможные решения: существует несколько решений для этого случая, но все они зависят от того, что вы хотите сделать. В этом примере, так как правильный заголовок столбца Date уже поставляется из текстового файла, можно просто удалить шаг, который переименовывает столбец. Это позволит выполнять запрос без этой ошибки.

Другие распространенные ошибки уровня шага

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

Ошибка брандмауэра формулы, запрос ссылается на другие запросы или шаги, поэтому он не может напрямую получить доступ к источнику данных.

Эта ошибка может быть вызвана рядом причин, таких как уровни конфиденциальности данных между источниками данных или способом объединения или объединения этих источников данных. Дополнительные сведения о диагностике этой проблемы см. в брандмауэре конфиденциальности данных.

Ошибка уровня ячейки

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

Отображение сообщения об ошибке путем выбора пробелов в ячейке таблицы, содержащей ошибку.

Примечание.

Средства профилирования данных помогают более легко выявлять ошибки на уровне ячеек с помощью функции качества столбца. Дополнительные сведения: средства профилирования данных

Обработка ошибок на уровне ячейки

При возникновении ошибок на уровне ячеек Power Query предоставляет набор функций для их обработки путем удаления, замены или сохранения ошибок.

В следующих разделах указанные примеры будут использовать тот же пример запроса, что и начальная точка. В этом запросе у вас есть столбец Sales с одной ячейкой с ошибкой преобразования, вызванной ошибкой преобразования. Значение внутри этой ячейки было NA, но при преобразовании этого столбца в целое число Power Query не удалось преобразовать NA в число, поэтому отображается следующая ошибка.

Отображает ошибку формата данных, не удалось преобразовать в ошибку типа данных в области ошибок.

Удаление ошибок

Чтобы удалить строки с ошибками в Power Query, сначала выберите столбец, содержащий ошибки. На вкладке "Главная" в группе "Уменьшить строки " выберите " Удалить строки". В раскрывающемся меню выберите "Удалить ошибки".

Кнопка

Результат этой операции даст вам таблицу, которую вы ищете.

Таблица, которая ранее содержала пять строк, теперь содержит строку, содержащую удаленную ошибку, оставляя четыре строки в таблице.

Замена ошибок

Если вместо удаления строк с ошибками необходимо заменить ошибки фиксированным значением, это также можно сделать. Чтобы заменить строки с ошибками, сначала выберите столбец, содержащий ошибки. На вкладке "Преобразование" в группе "Любой столбец " выберите " Заменить значения". В раскрывающемся меню выберите "Заменить ошибки".

Кнопка

В диалоговом окне "Замена ошибок" введите значение 10, так как вы хотите заменить все ошибки значением 10.

Диалоговое окно

Результат этой операции даст вам таблицу, которую вы ищете.

Таблица, в которой третья строка содержала ошибку в столбце Sales, теперь ошибка заменена значением 10.

Сохранение ошибок

Power Query может служить хорошим средством аудита для идентификации строк с ошибками, даже если не исправлять ошибки. Это место, где может быть полезно сохранить ошибки . Чтобы сохранить строки с ошибками, сначала выберите столбец, содержащий ошибки. На вкладке "Главная" в группе "Уменьшить строки " выберите "Сохранить строки". В раскрывающемся меню выберите "Сохранить ошибки".

Кнопка

Результат этой операции даст вам таблицу, которую вы ищете.

Окончательная таблица, которая сохраняет только строки, содержащие ошибки.

Распространенные ошибки на уровне ячеек

Как и в случае с любой ошибкой на уровне шага, мы рекомендуем внимательно изучить причины ошибок, сообщения об ошибках и сведения об ошибке, предоставленные на уровне ячейки, чтобы понять, что вызывает ошибки. В следующих разделах рассматриваются некоторые из наиболее частых ошибок на уровне ячеек в Power Query.

Ошибки преобразования типов данных

Часто активируется при изменении типа данных столбца в таблице. Некоторые значения, найденные в столбце, не удалось преобразовать в нужный тип данных.

Пример. У вас есть запрос, содержащий столбец с именем Sales. Одна ячейка в этом столбце имеет значение NA в качестве значения ячейки, а остальные имеют целые числа в качестве значений. Вы решили преобразовать тип данных столбца из текста в целое число, но ячейка со значением NA приводит к ошибке.

Не удалось преобразовать сведения об ошибке типа данных.

Возможные решения. После идентификации строки с ошибкой можно изменить источник данных, чтобы отразить правильное значение, а не NA, или применить операцию "Заменить ошибку", чтобы указать значение для любых значений NA, вызывающих ошибку.

Ошибки операций

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

Пример. Вы хотите создать настраиваемый столбец для запроса, создав текстовую строку, содержащую фразу Total Sales: "Суммарные продажи" со значением из столбца Sales . Ошибка возникает, так как операция объединения поддерживает только текстовые столбцы, а не числовые.

Ошибка выражения в области ошибок, вызванная попыткой применить оператор And к тексту и числу из столбца Sales.

Возможные решения. Перед созданием этого настраиваемого столбца измените тип данных столбца Sales на текст.

Таблица с столбцом продаж, преобразованным из типа данных Number в текстовый тип данных, и результирующий новый столбец, содержащий оба выражения.

Вложенные значения, отображаемые как ошибки

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

Произошла ошибка для вложенных значений, активированных брандмауэром формулы.

Expression.Error: We cannot return a value of type {value} in this context

Details: In the past we would have returned a text value of {value}, but we now return this error. Please see https://go.microsoft.com/fwlink/?linkid=2099726 for more information.

Эти ошибки обычно возникают по двум причинам:

  • Когда брандмауэр конфиденциальности данных буферизирует источник данных, вложенные не скалярные значения автоматически преобразуются в ошибки.
  • Если столбец, определенный с Any типом данных, содержит не скалярные значения, такие значения будут сообщаться как ошибки во время загрузки (например, в книге в Excel или модели данных в Power BI Desktop).

Возможные решения:

  • Удалите столбец, содержащий ошибку, или задайте тип данных, отличныйAny от типа данных для такого столбца.
  • Измените уровни конфиденциальности источников данных, участвующих в одном из них, что позволяет объединять их без буферизации.
  • Неструктурируйте таблицы перед слиянием, чтобы исключить столбцы, содержащие вложенные структурированные значения (например, таблицу, запись или список).