Измерьте как СУММУ с минимальным/максимальным значением другого столбца в качестве условия

#powerbi #dax

Вопрос:

Я пытаюсь получить сумму одного столбца на основе даты в другом.

Рассчитывать Дата
100 05/01/2021
200 05/01/2021
300 05/01/2021
100 06/01/2021
200 06/01/2021
400 06/01/2021
100 07/01/2021
300 07/01/2021
500 07/01/2021

В SQL то, что я хочу, это: SELECT SUM([COUNT]) WHERE [Date] = MIN([Date]) FROM [rpt_data]

Я не могу понять, как это сделать в DAX. Я попытался: CALCULATE( SUM([Count]), MIN([Date]) ) Но там написано, что я не могу использовать MIN в качестве фильтра. Я знаю, что это работает: CALCULATE( SUM([Count]), rpt_data[Date] = "07/01/2021" ) но мне нужно динамически знать первую и последнюю даты.

Мне нужен другой с МАКСОМ[Дата]), но я думаю, что если я разберусь с одним, то разберусь и с другим.

Ответ №1:

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

 measure =
var __minDate = calculate( min(OrderTable[Date]))
return
CALCULATE( SUM(SalesTable[Count]), FILTER(ALL(SalesTable[Date]), SalesTable[Date] = __minDate)
 

Комментарии:

1. Отличное спасибо! Я просто пытался создать меру с минимальным значением и использовать ее в качестве фильтра, но ей это тоже не понравилось. Мне потребуется некоторое время, чтобы распаковать ваш ответ, чтобы я знал, как применять его в будущем!