DAX получает временные ряды от начальной и конечной даты - PullRequest
0 голосов
/ 04 июля 2018

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

 Country --- Location --- Start-Date --- End-Date  ---  Value per day
 Italy       Rome         2018-01-01     2018-03-15     50
 Belgium     BXL          2017-12-04     2017-12-6      120
 Italy       Milan        2018-03-17     2018-04-12     80

Я хочу преобразовать это в DAX в месячный временной ряд, например:

Country  --- Location --- Month ---  Value per day
Italy       Rome         2018-01      50
Italy       Rome         2018-02      50
Italy       Rome         2018-03      22.58 (= 50 /31*(31-17) days)

Значение представляет собой средневзвешенное значение промышленной мощности. Я сделал это с помощью CROSS JOIN с таблицей Calendar, но это довольно сложно и требует вычисления каждого возможного значения, в то время как вычисление на лету, вероятно, будет быстрее.

Любая помощь? Большое спасибо

1 Ответ

0 голосов
/ 07 июля 2018

DAX будет похож на:

Total = 
Var DayDiff =
            SUMMARIZE(Table1,Appointments[End-Date],
            "DayDiff",DATEDIFF(min(Table1[Start-Date]),MAX(Table1[End-Date]),DAY)
            )

RETURN
   sumx(DayDiff,[DayDiff])

Вам не нужно использовать страну, местоположение и месяц в фильтре (выше dax), так как они будут доступны в контексте фильтра вы используете (например, сводную таблицу).

Пожалуйста, вставьте образцы строк, если это не работает.

...