В Visiology 3 вы можете моделировать данные с помощью формул, в которых используются DAX-функции. Эти функции позволяют выполнять сложные вычисления, результатом которых становятся новые данные. Полученные данные можно использовать для углубленного анализа данных и создания более информативных дашбордов.
DAX (Data Analysis Expressions) - это мощный язык формул и выражений, предназначенный для работы с данными в различных инструментах анализа данных. С помощью DAX можно создавать меры (measures) и выполнять сложные аналитические операции, что делает его незаменимым инструментом для анализа больших объемов данных.
Одной из ключевых концепций DAX является контекст вычислений. Контекст определяет, как интерпретируются и вычисляются формулы в зависимости от условий. В DAX выделяют два основных типа контекстов:
Контекст строки
Этот контекст определяет, как данные обрабатываются в пределах текущей строки таблицы. Например, при использовании функции SUMX
происходит итерация по каждой строке таблицы, и указанное выражение применяется к каждой строке отдельно. Контекст строки позволяет работать с данными на уровне отдельных записей, что особенно полезно для построения агрегаций или вычислений, зависящих от значений в конкретных строках.
Контекст фильтра
Этот контекст определяет, какие данные учитываются при выполнении вычислений. Он применяется в дополнение к контексту строки и позволяет сузить область вычислений до определенных значений. Например, фильтры, примененные в отчете или заданные с помощью функций, влияют на результат вычислений. Контекст фильтра часто используется в таких функциях, как CALCULATE
, FILTER
, RELATED
, ALL
и других. Например, функция CALCULATE
позволяет изменять контекст фильтра для выполнения вычислений с учетом дополнительных условий.
Понимание контекстов - ключ к эффективному использованию DAX. Правильное применение контекста строки и фильтра позволяет создавать гибкие аналитические решения, адаптированные под конкретные бизнес-задачи.
Рассмотрим несколько примеров, которые демонстрируют данную концепцию.
Пример 1 (контекст строки)
Предположим, компания хочет рассчитать прибыль для каждого бренда в таблице продаж. Прибыль рассчитывается как разница между выручкой и себестоимостью для каждой строки (бренда). Для этого используется следующая формула DAX:
Прибыль = SUMX (Продажи, Продажи[Выручка] - Продажи[Себестоимость])
В данной формуле Продажи[Выручка]
и Продажи[Себестоимость]
– это столбцы в таблице Продажи
. Формула применяется к каждой строке таблицы, вычисляя прибыль для каждого бренда.

Пример 2 (контекст фильтра)
Теперь предположим, что компания хочет рассчитать общую выручку только для определенного региона (например, "Северный регион"). Для этого нужно применить фильтр по региону:
Выручка_Северный_регион =
CALCULATE(
SUM(Продажи[Выручка]),
FILTER(Регионы, Регионы[Регион] = "Северный регион")
)
где
SUM(Продажи[Выручка])
– суммирует выручку.
CALCULATE
– изменяет контекст фильтра, добавляя условие Регионы[Регион] = "Северный регион"
, чтобы учитывать только данные для указанного региона.

Пример 3 (комбинация контекста строки и фильтра)
Далее компания хочет рассчитать среднюю прибыль по брендам, но только для тех, которые были проданы в текущем году. Для этого можно использовать следующую формулу:
Средняя_прибыль_текущий_год =
CALCULATE(
AVERAGEX(Продажи, Продажи[Выручка] - Продажи[Себестоимость]),
FILTER(Продажи, Продажи[Год] = YEAR(TODAY()))
)
где
AVERAGEX
– функция, которая итерируется по каждой строке таблицы Продажи
и вычисляет среднее значение прибыли (Выручка - Себестоимость
).
CALCULATE
– добавляет фильтр, чтобы учитывать только данные за текущий год (Продажи[Год] = YEAR(TODAY())
).

Для ознакомления с поддерживаемыми функциями, пройдите по ссылке ниже:
➡️ Поддерживаемые функции DAX
Смотрите также
📄 Создание и визуализация мер
📄 Математические операторы