Страницы: 1
RSS
Вывод максимального количества повторений значения по двум условиям через функцию DAX
 
Здравствуйте, уважаемые участники форума!
Прошу помощи в решении одной задачи.

В сводной таблице через меру необходимо вывести максимальное количество повторений исходя из наличия условий:
1. Текстовые значения столбца "nomination" должно быть одинаковым.
2. Текстовые значения столбца "task" или "version" должны быть разными.

И следовательно необходимо вывести максимальное количество встречающихся уникальных значений.

Заранее благодарен!
 
Добрый день.
Код
var tab = ADDCOLUMNS(VALUES('Таблица4'[nomination]);
               "Num"; 
               COUNTROWS(CALCULATETABLE(SUMMARIZE('Таблица4';'Таблица4'[task];'Таблица4'[version]))))
var maxNum = MAXX(tab; [Num])
return maxNum
 
Alex, решение хорошее, можно было не создавать новый столбец, а просто итерацию MAXX по VALUES произвести:
Скрытый текст

Но я не для ТС написал, а для Вас - Alex.
Как думаете, чем будет отличаться Ваша мера
Скрытый текст

от меры
Код
мера 2 :=
VAR tab =
    ADDCOLUMNS (
        VALUES ( 'Таблица4'[nomination] );
        "Num";
            CALCULATE (
                COUNTROWS ( SUMMARIZE ( 'Таблица4'; 'Таблица4'[task]; 'Таблица4'[version] ) )
            )
    )
VAR maxNum =
    MAXX ( tab; [Num] )
RETURN
    maxNum

Если будет/не будет отличаться, то все равно хорошо бы подумать, почему :) С пониманием проще работать с контекстом строки/фильтра.
 
surkenny, спасибо за примеры, действительно есть над чем подумать.
Насколько я понимаю, результат обоих мер будет одинаковым, но подходы к контексту фильтра у этих мер разный:
1. для CALCULATETABLE создается контекст фильтра для Наименования  на этапе группировки SUMMARIZE , а дальше уже COUNTROWS считает сгруппированную таблицу
2. для CALCULATE  же  контекст фильтра для Наименования создается уже на этапе COUNTROWS, а для SUMMARIZE действует только контекст фильтра по ФИО.
Поправьте меня, пожалуйста, если что-то неправильно понимаю, будет интересно услышать Ваш комментарий.  
Изменено: Alex - 11.12.2023 15:47:34
Страницы: 1
Наверх