5 важных функций DAX в Power BI

Data Analysis Expression (DAX) в Power BI был создан для упрощения анализа данных – подсчета цифр, визуализации закономерностей и многого другого. DAX позволяет пользователям настраивать определенные переменные и даже генерировать новые.

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

Функция FILTER

Функция DAX FILTER позволяет вернуть подмножество выражения или таблицы. Вот основное выражение функции FILTER в DAX:

FILTER(<таблица>,<фильтр>)

Например, если вы хотите получить подсчет отгруженных товаров со склада на основе стоимости таких товаров, которую вы определяете как любой товар стоимостью более $250, вам необходимо использовать функцию COUNTROWS. Эта функция предназначена для подсчета количества строк в заданной таблице, а затем вы можете использовать ее вместе с функцией FILTER для выполнения этого выражения:

Количество отгруженных товаров = COUNTROWS(FILTER('Shipped', 'Shipped'[Shipped] > 250))

Первый параметр ‘shipped’ указывает на таблицу или выражение, которое приводит к таблице. Второй параметр ‘Shipped ‘[Shipped] > 250’ указывает на утверждение истина/ложь или булево значение, которое оценивается для каждой из строк таблицы.

Приведенный выше пример выражения DAX показывает, что таблица Shipped передается в функцию FILTER с запросом на возврат отгруженных товаров, стоимость которых превышает 250 долларов. Функция FILTER не предназначена для использования или реализации в качестве отдельной функции. Скорее, функция FILTER используется вместе с другими функциями, которые могут ее дополнить.

В приведенном выше примере формулы DAX функция FILTER использовалась для возврата подмножества перед подсчетом результатов этого подмножества.

Функция ALL

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

ALL(<таблица> или <столбец>)

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

Ниже приведено выражение DAX, которое показывает, как функция ALL может помочь вам выполнить приведенную выше задачу:

Количество всех отгруженных товаров = COUNTROWS(ALL('Shipped'))

В приведенном выше примере формулы DAX таблица ‘Shipped’ была передана функции ALL с просьбой отменить любой фильтр, который был применен к ней ранее. Как и функция FILTER, функция ALL используется вместе с другими функциями, а не как самостоятельная функция.

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

Функция RELATED

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

RELATED(<столбец>)

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

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

Как выражение для столбцов, которое было вычислено и где текущий контекст строки является определенным.
Она может быть использована в выражении как вложенная функция, которая использует функцию DAX X. Например, SUMX.
связанная функция DAX
Используя пример с отгрузкой, приведенный выше, давайте отфильтруем отгрузку для другой страны – Великобритании. Однако для этого у нас нет всей необходимой информации в одной таблице. Но мы можем использовать функцию RELATED (извлечение значений из одной таблицы в другую на основе существующей связи между ними).

Основываясь на том, что между таблицей ‘Shipped’ и таблицей ShippedGeography существует связь “многие-к-одному”, вы можете использовать функцию RELATED для получения подсчета количества отгруженных товаров только для Великобритании. Ниже приведен пример такого выражения DAX:

Count of Shipped items in Britain = COUNTROWS(FILTER(ALL('Shipped), RELATED('ShippedGeography'[Countries] = "Britain")))

Функция TOTALYTD / TOTALQTD / TOTALMTD

Эта функция выполняет аналогичную функцию, как функция даты и времени в Microsoft Excel. Интеллектуальные функции времени в DAX позволяют пользователям вводить или изменять данные, используя различные периоды времени. К ним относятся дни, месяцы, кварталы и годы. Эта функция также позволяет пользователям строить и проводить сравнения между расчетами за такие периоды времени.

Ниже приведено базовое выражение этой функции:

TOTALYTD(<выражение>,<даты>[,<фильтр>][,<датаконцагода>])

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

Всего отгруженных товаров в этом году = TOTALYTD(SUM('Shipped'[Shipped]), 'Dates'[Dates])

Указанный параметр ‘Shipped'[Shipped], показывает столбец, который вы хотите вычислить. Это также может быть выражение, которое извлекает скалярное или единичное значение. Другой параметр, ‘Date'[Dates], представляет собой столбец, в котором указываются даты.

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

Функция CALCULATE

Функция CALCULATE является одной из самых важных и многоцелевых функций в DAX Power BI. Эта функция может упростить сложные и многочисленные вычисления с помощью простых усилий. Функция DAX CALCULATE оценивает выражение в контексте, который изменяется с помощью определенных фильтров. Ниже приведен базовый пример таких выражений DAX:

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

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

Ниже приведен пример использования функции CALCULATE для выполнения вышеуказанной задачи:

Сумма отгруженных товаров всех стран = CALCULATE(SUM('Shipped'[Shipped]),ALL('ShippedGeography'))

Первый параметр SUM(‘Shipped'[Shipped]), показывает столбец, который пользователь намерен агрегировать. В то время как другой параметр, ALL(‘ShippedGeography’)), указывает булево значение, которое исключает любой фильтр, примененный к таблице ShippedGeography.

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

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

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

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

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