Россия Нет

DAX функции MAX, MAXA, MAXX и MIN, MINA, MINX (для Power BI и Power Pivot)

 Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):


Приветствую Вас, дорогие друзья, с Вами Будуев Антон. В этой статье разберем несколько DAX функций в Power BI и Power Pivot, входящих в категорию статистических (агрегационных), а именно, функции MAX, MAXA, MAXX и MIN, MINA, MINX.

 

Для Вашего удобства, рекомендую скачать «Справочник DAX функций для Power BI и Power Pivot» в PDF формате.

Если же в Ваших формулах имеются какие-то ошибки, проблемы, а результаты работы формул постоянно не те, что Вы ожидаете и Вам необходима помощь, то записывайтесь в бесплатный экспресс-курс «Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot».

 

DAX функция MAX в Power BI и Power Pivot

DAX функция MAX () — возвращает максимум среди числовых значений. MAX работает в двух режимах и эту особенность необходимо всегда учитывать в ее работе. Режимы работы зависят от вида синтаксиса.

Синтаксис:

  • MAX ([Столбец]) — возвращает максимум среди значений столбца (особенность — не учитывает контекст строки)
  • MAX (Выражение 1; Выражение 2) — возвращает максимум среди значений из двух параметров функции. Если работа производится в таблице, то MAX работает построчно, вычисляя максимум в рамках только одной строки (особенность — учитывает контекст строки)

Пример работы формул в Power BI на основе функции MAX: имеется исходная таблица с числовыми значениями в двух столбцах

 

Добавим в Power BI Desktop во вкладке «Моделирование» третий вычисляемый столбец на основе следующей DAX формулы с использованием MAX:

Столбец3 = MAX([Столбец1])

Исходя из того, что MAX в формуле прописана по синтаксису первого типа, то максимум вычисляется среди значений всего столбца, в данном примере по [Столбец1], и это значение равно 10. Эта формула будет вычисляться без учета контекста строки и именно поэтому, в нашем вычисляемом столбце во всех ячейках результат выполнения функции MAX будет одним и тем же:

 

Если же мы изменим формулу и напишем ее согласно второму типу синтаксиса MAX:

Столбец3 = MAX([Столбец1]; [Столбец2])

то результат вычисления третьего столбца уже будет совсем другой, а именно, MAX будет вычислять максимум среди двух столбцов в рамках только одной строки. Поэтому результат будет таким:

 

DAX функция MAXA в Power BI и Power Pivot

MAXA () — вычисляет максимум с обработкой пустых ячеек и ячеек, содержащих логический тип данных. Причем TRUE считается как 1, а FALSE — как 0.

Синтаксис: MAXA ([Столбец])

Пример: имеется исходная таблица со столбцом, который содержит логические значения

Если мы попытаемся рассчитать максимум по этому столбцу с использованием функции MAX, то выйдет ошибка, так как MAX не работает с логическими значениями

 

Но, если мы исправим формулу и пропишем там MAXA, которая учитывает логические значения, то максимум рассчитается, и он будет равен 1, так как MAXA считает TRUE, равным 1, а FALSE — равным 0:

 

DAX функция MAXX в Power BI и Power Pivot

MAXX () — выводит максимальное значение из результатов построчного вычисления выражения.

Синтаксис: MAXX (‘Таблица’; Выражение), где:

  • ‘Таблица’ — исходная таблица или табличное выражение, по строкам которой будет вычисляться выражение из второго параметра функции
  • Выражение — любое выражение, которое необходимо выполнить по строкам таблицы, входящей в первый параметр функции

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

Пример: имеется исходная таблица, состоящая из одного столбца с числовыми данными

Запишем следующую формулу:

Максимум = MAXX ('Таблица'; [Столбец1] + 2)

Для начала MAXX вычислит выражение «[Столбец1] + 2» по каждой строке таблицы, то есть к значению каждой строки [Столбец1] прибавит 2, и только после этого, на основе получившихся результатов, вычислит максимум, который будет равен 5:

 

DAX функции MIN, MINA, MINX в Power BI и Power Pivot

DAX функции MIN (), MINA () и MINX () работают полностью аналогично соответствующим функциям максимумов, только вместо самых больших значений вычисляют самые маленькие значения. Поэтому, прежде, чем знакомится с функциями группы MIN, рекомендую просмотреть материал выше с разбором и примерами работы функций группы MAX.

  1. MIN () — вычисляет минимум среди числовых значений. Также, как и функция MAX, MIN работает в двух режимах, зависящих от вида синтаксиса.Синтаксис:
    • MIN ([Столбец]) — возвращает минимум среди значений столбца (не учитывает контекст строки)
    • MIN (Выражение 1; Выражение 2) — возвращает минимум среди значений из двух параметров функции. Если работа производится в таблице, то MIN работает построчно, вычисляя минимум в рамках только одной строки (учитывает контекст строки)
  2. MINA () — возвращает минимум с обработкой пустых ячеек и ячеек, содержащих логический тип данных. TRUE считается как 1, а FALSE — как 0.

    Синтаксис: MINA ([Столбец])

  3. MINX () — выводит минимальное значение из результатов построчного вычисления выражения.Синтаксис: MINX (‘Таблица’; Выражение)Вычисления производит в два действия — сначала вычисляет выражение из второго параметра по каждой строке таблицы из первого параметра, а потом возвращает минимум по получившимся результатам первого действия.

Примеры работы DAX формул на основе функций группы MIN мы разбирать в Power BI или Excel (Powerpivot) не будем, так как они полностью идентичны работе примеров, которые мы разбирали выше по группе функций MAX, только вместо максимумов в данном случае будут вычисляться минимумы.

 

Группы MAX, MIN и другие функции DAX (FILTER, DATE…)

Так как функции агрегирования относятся к простейшим функциям DAX, то сами по себе они в формулах используются достаточно редко. Чаще всего их работа требуется совместно с какими-либо другими функциями, как FILTER, CALCULATE, DATE и прочими функциями.

Например, MAXX может вычислить максимум по результатам выполнения выражения на основе таблицы, отфильтрованной функцией FILTER.

Рассмотрим пример: имеется исходная таблица заявок по товарам

 

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

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

Формула будет следующей:

МаксимумТовар1 = 
MAXX(
    FILTER(
        'Товары';
        'Товары'[Товар] = "Товар1"
    );
   'Товары'[Продажи] - 'Товары'[Затраты]
)

И, как результат выполнения этой формулы, максимальная прибыль по заявкам среди Товара 1 будет равна 35000:

 

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

В этом случае MAX будет выдавать максимальное значение в строке исходной таблицы, а FILTER сравнивать это значение с текущим значением своей внутренней виртуальной таблицы.

Ниже приведена схема такого кода:

= 
CALCULATE (
    SUM ([Столбец1]); 
    FILTER (
        ALLSELECTED ([Столбец2]); 
        [Столбец2] <= MAX ('[Столбец2])
    )
)

На этом, с разбором группы функций максимумов и минимумов в Power BI и Power Pivot в этой статье, все. Удачи Вам!
 

Подробное ВИДЕО «MAX, MAXA, MAXX, MIN, MINA, MINX: DAX функции максимумов и минимумов в Power BI (Pivot)»









Ссылки из видео:
1) [Регистрируйтесь в бесплатном экспресс-курсе] Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot: зарегистрироваться
2) [Скачивайте PDF] Справочник DAX функций для Power BI и Power Pivot на русском языке: скачать

Пожалуйста, оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(12 голосов, в среднем: 4.3 из 5 баллов)
[Экспресс-видеокурс] Быстрый старт в языке DAX

 
 
Антон БудуевУспехов Вам, друзья!
С уважением, Будуев Антон.
Проект «BI — это просто»
 
 
 
 

Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.
 
Также, делитесь данной статьей со своими знакомыми в социальных сетях, возможно, этот материал кому-то будет очень полезен.

 
Понравился материал статьи?
Избранные закладкиДобавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D

Автор статьи:
Категория: Язык функций и формул DAX для Power BI и Excel (Power Pivot)

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

* Заполняя форму отправки комментария своими персональными данными (имя, email, сайт и др.), Вы автоматически подтверждаете свое согласие на обработку своих персональных данных