PowerBI DAX - использование меры в качестве фильтра в функции CALCULATE - PullRequest
0 голосов
/ 24 октября 2019

Я хочу создать меру DAX в PowerBI, которая обеспечит совокупный объем продаж на определенную дату. Мне нужно, чтобы эта дата контролировалась срезом даты. В частности, максимальная дата на слайсере.

Я бы ожидал, что это будет функция Calculate(). Так что-то вроде следующего, если это было жестко закодировано с датой.

=CALCULATE(SUM(FactInternetSales2[Sales]), DimDate2[Dim Date] = DATE(2018, 06, 18))

Но мне нужно, чтобы компонент фильтра функции Calculate() (т. Е. DimDate2 [Dim Date] = DATE (2018,06,18)) был динамически заполненот максимальной даты на срезе даты. Однако я понимаю, что мера не может использоваться в качестве фильтра в функции вычисления - поэтому я не могу создать меру, например, следующую для определения максимальной даты

=LASTDATE(DimDate2[Dim Date]) 

, а затем использовать ее вфункция Calculate(), такая как

=CALCULATE(SUM(FactInternetSales2[Sales]), DimDate2[Dim Date] = LASTDATE(DimDate2[Dim Date])

Может кто-нибудь обрисовать, как я могу использовать максимальную дату из среза для фильтрации функции Calculate() или достижения того же результата?

Aкопия моего рабочего файла находится здесь https://drive.google.com/file/d/1d1JiyPm1jOD9XkVqv3Q5pm0vk1FMotH9/view?usp=sharing

Cheers Steve

Ответы [ 2 ]

2 голосов
/ 24 октября 2019

Вы можете прочитать значение параметра в переменную.

SalesSum =
VAR EndDate = LASTDATE ( DimDate2[Dim Date] )
RETURN
    CALCULATE ( SUM ( FactInternetSales2[Sales] ), DimDate2[Dim Date] = EndDate )
0 голосов
/ 24 октября 2019

Вы можете использовать функцию Calculate() с таким фильтром:

=CALCULATE(SUM(Table1[SalesValue]), FILTER(Table1, Table1[Year] = 2019))

Чтобы получить значение из слайсера, перейдите к Modeling > New Parameter. Здесь вы можете указать свои параметры и нажать OK. Теперь вы получаете новую таблицу и столбец для этого параметра на панели полей. Просто укажите ссылку на этот столбец с помощью следующего кода:

=SELECTEDVALUE(ParameterTable[ParameterValue])
...