Россия Нет

Функции обработок ошибок в DAX: ERROR, IFERROR и ISERROR в Power BI и Power Pivot

 
   
   

 Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):


Приветствую Вас, дорогие друзья, с Вами Будуев Антон. В этой статье мы рассмотрим несколько функций в Power BI и Power Pivot, которые так или иначе обрабатывают возникающие во время вычислений в DAX, ошибки. И это функции ERROR, IFERROR и ISERROR.

Для Вашего удобства, рекомендую скачать «Справочник DAX функций для Power BI и Power Pivot» в PDF формате.

Если же в Ваших формулах имеются какие-то ошибки, проблемы, а результаты работы формул постоянно не те, что Вы ожидаете и Вам необходима помощь, то записывайтесь в бесплатный экспресс-курс «Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot».

Да, и еще один момент, в рамках распродажи до 29 ноября 2024 г. у Вас имеется возможность приобрести большой, пошаговый видеокурс «DAX — это просто» со скидкой 50% (вместо 10000, всего за 5000 руб.)

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

Итак, пользуйтесь этой возможностью, заказывайте курс «DAX — это просто» со скидкой 50% (до 29 ноября 2024 г.): узнать подробнее

до конца распродажи осталось:

 

DAX функция ERROR в Power BI и Power Pivot

ERROR () — останавливает выполнение DAX кода и выводит заранее определенную пользователем ошибку (предупреждение).

Синтаксис: ERROR («Текст ошибки»)

Пример: в Power BI имеется исходная таблица с перечислением товаров и их количеством

 

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

Общее количество можно рассчитать при помощи DAX функции SUM:

Общее Количество Товара = SUM ('Товары'[Количество])

Данная формула действительно сможет посчитать общее количество товара, но она также легко подвержена пользовательским фильтрам, что по условию задачи нам не нужно:

Тогда мы можем изменить формулу выше и сумму рассчитать под следующим условием: если наложен какой-либо фильтр, то выдать пользователю предупреждение, если фильтра нет, то рассчитать количество.

Все это легко решается при помощи функций IF (условия «если») и ISFILTERED (проверяет на наличие фильтров):

Общее Количество Товара = 
IF(
    ISFILTERED('Товары'[Товар]);
    "ФИЛЬТРОВАТЬ ТОВАРЫ НЕЛЬЗЯ!";
    SUM('Товары'[Количество])
)

Получившаяся формула вполне рабочая, если мы выберем какой-либо товар, то нам действительно выйдет предупреждение:

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

И это как раз таки можно реализовать при помощи функции ERROR, прописав внутри нее наш текст предупреждения, и вставив ERROR заместо текста предупреждения в формуле выше:

Общее Количество Товара = 
IF(
    ISFILTERED('Товары'[Товар]);
    ERROR("ФИЛЬТРОВАТЬ ТОВАРЫ НЕЛЬЗЯ!");
    SUM('Товары'[Количество])
)

Тогда, если пользователь наложит фильтр, то DAX формула остановит свою работу:

И при нажатии на визуализации в Power BI на ссылку «См. подробности», выйдет текст самого предупреждения, который мы прописывали в ERROR:

 

Если убрать все фильтры, то, соответственно, формула рассчитает общее количество товаров и ни каких предупреждений от ERROR не будет.

 

DAX функция IFERROR (если ошибка) в Power BI и Power Pivot

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

Синтаксис: IFERROR (Выражение; Значение Если Ошибка)

Пример формулы 1: IFERROR (6 / 2; BLANK() ) 
Результат: 3

В итоге возвратился результат вычисления самого выражения, так как само выражение «6 / 2» вычисляется без ошибок и равно 3.

Пример формулы 2: IFERROR (6 / 0; BLANK() ) 
Результат: пусто

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

То есть, функцией IFERROR можно обрабатывать ошибки в формулах, где возможно деление на 0. Но, кроме этого, можно при помощи нее застраховываться и от любых других ошибок, возникающих при выполнении формул в DAX.

 

DAX функция ISERROR в Power BI и Power Pivot

ISERROR () — относится к информационным функциям DAX. Она выводит значение TRUE (Истина), если значение, входящее в ее параметр вычисляется с ошибкой, а также, значение FALSE (Ложь), если ошибок нет.

Синтаксис: ISERROR (Значение)

Пример формулы 1: ISERROR (6 / 2)
Результат 1: FALSE (Ложь)

Пример формулы 2: ISERROR (6 / 0)
Результат 2: TRUE (Истина)

В первой формуле ISERROR выдала значение FALSE (Ложь), потому что выражение «6 / 2» вычисляется без ошибки. Тогда как, во втором случае выражение «6 / 0» вычисляется с ошибкой и поэтому ISERROR выдала значение TRUE (Истина).

Если ISERROR дополнить функцией условия «если» IF, то получится полный аналог DAX функции, которую мы рассматривали выше — IFERROR:

IFERROR = 
IF (
    ISERROR (Выражение);
    "Значение Если Ошибка"
    Выражение
)

 
На этом, с разбором функций обработок ошибок в Power BI и Power Pivot, все.



 

Друзья, хотите изучить полный курс по языку DAX для Power BI и Power Pivot
со скидкой 50% вместо 10000 всего за 5000 р.?

 
акция действует до 29 ноября


 

 


 
Узнать все подробности об этом курсе, а также заказать его со скидкой 50% всего за 5000 руб. Вы можете на странице курса, кликнув по кнопке ниже (до 29 ноября):
 

Узнать подробнее и заказать курс всего за 5000 руб.

Пожалуйста, оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(6 голосов, в среднем: 4.3 из 5 баллов)
[Экспресс-видеокурс] Быстрый старт в языке DAX

 
 
Антон БудуевУспехов Вам, друзья!
С уважением, Будуев Антон.
Проект «BI — это просто»
 
 
 
 

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

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

Автор статьи:
Категория: Язык функций и формул DAX для Power BI и Excel (Power Pivot)

Добавить комментарий

* Заполняя форму отправки комментария своими персональными данными (имя, email, сайт и др.), Вы автоматически подтверждаете свое согласие на обработку своих персональных данных