DAX Measure: ЕСЛИ сумма всех пользователей = Max THEN возвращаемое значение отдельного пользователя

Он все,

Я новичок в мерах DAX, и я пытаюсь получить меру, чтобы иметь следующую логику:

When sum of all users = Max, THEN return value of individual user

Модель данных имеет следующие столбцы: CustomerID \ Usage \ Interval (DATETIME). Меня сбивает с толку то, что DATETIME с шагом в 15 минут. У меня есть около 700 уникальных идентификаторов CustomerID, и я должен иметь возможность вернуть использование каждого CustomerID во время MAXSUM всех идентификаторов CustomerID.

Я не уверен, что это будет оператор IF-THEN или мне нужно использовать функцию времени. Я пишу эту меру DAX в Power Pivot для отправки в сводную таблицу в Excel.

Заранее спасибо,

1 ответ

Решение

Это может быть не самое простое решение, но оно работает для меня (я назвал таблицу Load).

CustomerUsage = 
    VAR Summarized = CALCULATETABLE(
                         SUMMARIZE(Load, Load[Interval], "TotalUsage", SUM(Load[Usage])),
                         ALLSELECTED(Load))
    VAR MaxUsage = MAXX(Summarized, [TotalUsage])
    VAR MaxInterval = MAXX(FILTER(Summarized, [TotalUsage] = MaxUsage), [Interval])
    RETURN CALCULATE(SUM(Load[Usage]), Load[Interval] = MaxInterval)

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

MaxUsage просто самый большой TotalUsage по всем интервалам.

MaxInterval интервал, для которого TotalUsage = MaxUsage,

Тогда мы можем найти Usage для клиента на интервал с максимальным использованием.

Другие вопросы по тегам