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
для клиента на интервал с максимальным использованием.