Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

DIVIDE () производит деление с обработкой ошибки “деление на ноль“. Обработка ошибки заключается в выводе альтернативного результата в случае возникновения ситуации деления на ноль.

Синтаксис

DIVIDE (<делимое число>, <делитель>, <альтернатива>)

где <альтернатива> – значение, которое нужно вывести в случае ошибки деления на ноль (необязательный параметр). По умолчанию, если не указано иное, выводится пустое значение BLANK (). Для этого параметра допускается любое целое число, а также BLANK.

Пример

Формула ниже вычисляет среднюю цену товара для каждого чека, используя данные о ценах и номерах заказов из таблицы factonlinesales:

Блок кода
Средняя цена товара по чеку = DIVIDE(
            CALCULATE(
                SUM('factonlinesales'[unitprice]),
                REMOVEFILTERS('factonlinesales'),
                SUMMARIZE('factonlinesales', 'factonlinesales'[salesordernumber])
            ), 
            CALCULATE(
                COUNT('factonlinesales'[productkey]),
                REMOVEFILTERS('factonlinesales'),
                SUMMARIZE('factonlinesales', 'factonlinesales'[salesordernumber])
            ), BLANK()
        )

Данная формула состоит из нескольких шагов:

  1. Вычисляется сумма цен всех товаров в чеках без учета фильтров (REMOVEFILTERS). Для этого сначала применяется функция CALCULATE, которая вычисляет сумму цен всех товаров по каждому уникальному номеру заказа (salesordernumber) из таблицы factonlinesales, затем функция REMOVEFILTERS удаляет фильтры, которые могут изменить сумму цен, и возвращает данные без фильтров.

  2. Вычисляется количество товаров в каждом чеке без учета фильтров. Для этого также используется функция CALCULATE с аналогичными параметрами.

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

  4. Результат деления на ноль заменяется на пустую строку (BLANK()).

Примечание

Если в заказе несколько строк для одного и того же товара (разные цены, например, по скидке и без), то формула может не работать, как ожидается. Это связано с тем, что для одного и того же товара несколько позиций, в результате итоговое количество товаров считается неверно.

Если в заказе несколько строк для одного и того же товара, то формула может не работать, как ожидается. Это связано с тем, что функция SUM в CALCULATE суммирует значения по всем товарам в заказе, включая все значения одного и того же товара.


Смотрите также

📄 Поддерживаемые функции DAX

Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.