Блог Effema
Power BI

С чего начинается мера?

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

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

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

Контекст фильтра


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

1. Фильтры отчёта: фильтры конкретного визуального элемента; этой страницы или всех страниц. На рисунке — фильтр визуального отчёта. Он ограничивает набор строк, на основе которого производится вычисление данных для визуального элемента.

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

2. Срезы. Суть примерно та же, что и у фильтров. Но фильтры главнее. Фильтры фильтруют срезы. Срезы на фильтры не влияют никак.

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

3. Кроссфильтрация - фильтрация данных одного элемента при выделении элементов другого элемента. Одни и те же элементы без выделения и с выделением Store 3 - данные на нижней таблице при выделении отфильтровались:
4. Сами элементы визуализаций тоже являются фильтрующими. Они фильтруют набор строк, которые участвуют в вычислении конкретных полей. И тоже являются контекстом фильтра:

5. Функции, используемые при вычислениях:
ALL, RELATED, FILTER, CALCULATE, ALLSELECTED, ALLEXCEPT...

В Power BI помимо контекста фильтра выделяют ещё контекст строки.

Контекст строки


Контекст строки актуален для вычисляемых столбцов. Вычисляемый столбец всегда в результате выдаёт значение для каждой строки таблицы, в которую добавлен. И по умолчанию находится в контексте строки. Мы можем обращаться к столбцу таблицы, в которую добавляем столбец, и если подразумевается значение, то будет взято значение актуальной для вычисления строки:
18 669,00 * 0,05 = 933,45


В следующих статьях мы разберём, как создавать меры, какие они бывают, чем отличаются от столбцов и, самое главное, -  зачем им контекст.


Comments powered by Agentima