Освоение функции CALCULATE в Power BI

  • Автор записи:
  • Запись опубликована:29.01.2024
  • Рубрика записи:BI

Функция CALCULATE – одна из самых важных функций при создании показателей DAX.

Синтаксис CALCULATE прост. Он позволяет легко создавать выражения. Однако понять, когда и почему вы должны использовать эту функцию, может оказаться сложнее.

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

Знакомство с популярной функцией CALCULATE в Power BI

Знакомы ли вы с функциями SUMIF/SUMIFS в Excel? Они используются для суммирования определенного столбца и отсеивания несовпадающих строк. Например, вы можете использовать SUMIF для расчета общей выручки, но только для тех строк таблицы продаж, в которых столбец “Год” равен 2023.

CALCULATE похожа на функции SUMIF/SUMIFS, но более мощная. Она позволяет взять любую агрегатную функцию, не ограничиваясь COUNT, SUM или AVERAGE. В Excel вам может понадобиться что-то вроде MAXIF, MINIF или STDEVIF. С помощью CALCULATE вы можете быстро создать версию этих функций.

Более того, вы можете использовать CALCULATE в таблицах Pivot как часть меры. В то время как с помощью SUMIF это невозможно.

Что делает функция CALCULATE в Power BI?

Функция CALCULATE оценивает выражение в измененном контексте фильтра.

Чтобы было проще понять, давайте рассмотрим пример, показывающий, как CALCULATE может вам помочь.

Примечание: Мы используем файл Contoso Sales Sample от Microsoft для Power BI. При желании вы можете скачать этот файл и открыть его с помощью Power BI Desktop.

Допустим, вы создали таблицу, показывающую общий объем продаж по категориям товаров, следующим образом:

Затем, для каждой категории товаров вы хотите показать общий объем продаж за 2011 год. Вы хотите сравнить его с общим объемом продаж за все годы и отобразить эту информацию рядом со столбцом “Total Sales”. Кроме того, вы хотите, чтобы на общий объем продаж за 2011 год не влиял слайсер или какой-либо фильтр, используемый в визуальном режиме:

В этом случае вам нужно применить разные контексты фильтрации для разных показателей в одном и том же визуальном ряду. Здесь вам поможет CALCULATE.

Синтаксис Power BI CALCULATE

Ниже приведен синтаксис DAX для Power BI CALCULATE:

CALCULATE(<выражение>[, <фильтр1> [, <фильтр2> [, …]]])

Функция DAX CALCULATE имеет два аргумента:

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

=CALCULATE(SUM(Sales[SalesAmount]),'Calendar'[Year]=2011)
=CALCULATE([Total Sales],'Calendar'[Year]=2011, Geography[RegionCountryName]="United States")


Подробнее о параметре фильтра:

В параметре можно также использовать операторы <, >, <=, >= и <>.

CALCULATE допускает использование нескольких фильтров, объединенных в логический оператор AND. Если вам требуется оператор OR, вы можете использовать оператор “||” или стиль “OR()“.

Пример:

=CALCULATE([Общие продажи], 'Календарь'[Год]=2011 || 'Календарь'[Год]=2012)
=CALCULATE([Общий объем продаж], OR('Календарь'[Год]=2011,'Календарь'[Год]=2012))

Функция Power BI CALCULATE в действии

Мы будем использовать только что созданную формулу в визуализации.

Например, мы создадим таблицу, в которой будут отображаться категории товаров и два показателя: Общий объем продаж и наш новый показатель “2011 Sales”, который всегда фильтруется для 2011 года.

Вот три ключевых момента в этой формуле:

В аргументе мы используем показатель [Total Sales]. Вы также можете использовать любую формулу, которая может определять меру, например SUM(Sales[SalesAmount]).

В аргументе <фильтр> мы не заключаем 2011 в кавычки, потому что столбец Year относится к числовому типу данных. Если бы это был текст, нам пришлось бы написать =”2011″.

В этом примере мы используем только один <фильтр>, но вы можете использовать столько, сколько вам нужно в одной формуле CALCULATE.

Как работает формула CALCULATE в Power BI

Теперь, когда мы использовали CALCULATE в измерении и отобразили его в таблице, давайте рассмотрим, как работает эта функция.

Допустим, вы добавили слайсер, который фильтрует таблицу по 2013 году. Формула CALCULATE в Power BI отменит этот существующий фильтр и покажет продажи за 2011 год.

Это происходит потому, что аргументы <фильтр> в CALCULATE оцениваются на этапе “фильтрации” вычисления меры. Они изменяют контекст фильтра, заданный визуальным образом. Это происходит до применения этих фильтров к исходным таблицам и до начала фазы расчета.

Кроме того, мы видим, что фильтр в формуле CALCULATE Power BI добавляет новый слой в контекст фильтра. Новый фильтр (Year = 2011) добавляется поверх существующего (ProductCategory). Результатом будет пересечение этих двух фильтров, показывающее продажи для каждой категории товаров в 2011 году.

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

Некоторые полезные примеры CALCULATE в Power BI

Мы использовали показатель [2011 Sales] в качестве примера, чтобы продемонстрировать работу CALCULATE. Однако это может показаться не очень полезным.

Поэтому давайте перейдем к другим примерам использования, которые более применимы.

Как использовать CALCULATE в Power BI для сравнения продаж по типам магазинов

В данных Consoso Sales у нас есть четыре различных типа магазинов: Каталог, Онлайн, Реселлер и Магазин.

Возможно, вы захотите сравнить продажи в интернет-магазине с другими типами. Для этого можно создать две меры со следующими формулами:

Online Sales = CALCULATE([Total Sales], Stores[StoreType] = "Online")
Non-online Sales = CALCULATE([Total Sales], Stores[StoreType] <> "Online")

Не отходя от практической темы, давайте проверим, какой процент от общего объема продаж приходится на онлайн-продажи.

Pct Online Sales = [Online Sales] / [Total Sales]

Когда использовать CALCULATE в Power BI

Мы рассмотрели несколько примеров, которые должны облегчить вам понимание того, когда полезно использовать функцию CALCULATE в Power BI. Вот некоторые из них:

  • Изменение контекста: Формула CALCULATE Power BI позволяет изменять контекст вычисления. Это особенно полезно, когда необходимо выполнить вычисления, не основанные на существующих фильтрах или условиях в отчете.
  • Применить конкретные фильтры: Если вы хотите применить к показателю определенные фильтры, CALCULATE может это сделать. Например, если вы хотите узнать общий объем продаж только для определенного региона или категории товаров.
  • Процент от общего объема: например, если вы хотите рассчитать % вклада определенного сегмента в общий объем.
  • Сравнение: Например, когда вы хотите сравнить данные по разным категориям, например, сравнить продажи через Интернет и продажи не через Интернет.
  • Расчеты на основе времени: Мы рассмотрели пример использования формулы CALCULATE в Power BI для получения суммарных продаж. Вы также можете использовать эту функцию для других вычислений, основанных на времени, например для подсчета итогов за год или месяц и вообще при работе с таблицей дат в Power BI.

Мы надеемся, что это руководство помогло вам в изучении Power BI CALCULATE, особенно в отношении того, почему и когда следует использовать эту функцию.

Перевод статьи: Mastering the Power BI CALCULATE Function.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.