#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. Отличное спасибо! Я просто пытался создать меру с минимальным значением и использовать ее в качестве фильтра, но ей это тоже не понравилось. Мне потребуется некоторое время, чтобы распаковать ваш ответ, чтобы я знал, как применять его в будущем!