или как вызвать ошибки в Power Query с помощью Try
Довольно часто отчеты в Эксель или Power BI строят на многочисленных шаблонных таблицах с одинаковой структурой, либо используют для обработки и раскрытий значений в выгрузка формата JSON.
При этом в довольно большом количестве случаев на определенных этапах обработки данных удаляются ошибки, которые могут повлиять на выгрузку отчетов и раскрытие файлов. Да, это функция очень удобна, ведь тогда у вас не падают каждый раз по каждой ошибке отчеты, не надо лишний раз лезть в Power BI в Query.
Но как быть, если мы хотим сохранить это удобство и при этом видеть все ошибки при обновлении отчетов и лишний раз, опять такие, не лазить в Power Query?
Решение есть и это - вызов ошибок с помощью функции Try языка M.
Как это выглядит на деле?
1. Мы дублируем тот запрос, где у нас потенциально могут появляться ошибки и где мы применяем шаг "Удалить ошибки".
2. Затем мы удаляем все столбцы кроме тех, которые нам помогут определить местоположение ошибки (файл, ссылка, название JSON и прочее, в общем идентификатор) и столбца данных.
4. После этого добавляем новый пользовательский столбец. В нём мы как раз и применим функцию языка М - Try. Функция максимально простая, по сути, надо просто выбрать столбец, который мы хотим проверить на ошибки. В нашем случае это столбец "Преобразовать файл".
Функция на выходе нам сообщит, есть ли ошибка в выбранном столбце.
5. После применения шага мы видим, что ошибки ушли и на месте ошибки появилась запись.
Теперь наша задача - показать, что же там за ошибки.
6. Добавим еще один шаг, в котором попросим Power Query раскрыть причину ошибки.
Формула выглядит следующим образом: if [Ошибки][HasError] then [Ошибки][Error][Message] else 0
Иными словами, если в нашем столбце есть ошибка, то тогда вывести сообщение о причине ошибки, в противном случае (если нет ошибок) вывести 0.
3. Как видим, у нас явно есть ошибки. А когда файлов/запросов много, и при этом мы автоматически удаляем ошибки, это может сильно сказаться на получаемом результате.
7. Наконец последним шагом просто применяем фильтрацию: отобразить всё, корме 0. Ну и Вывести этот запрос на отдельный лист в Excel или отдельный дашборд в Power BI.
Как видите, с помощью функции Try языка M у нас появился запрос, который нам всегда будет выводить ошибки, идентификатор места ошибки и причину ошибки. При этом, наш отчет будет обновляться, не будет необходимости каждый раз залезать внутрь и исправлять ошибки. Останется только самим посматривать в лист/дашборд с ошибками и корректировать источники.