首页 > 解决方案 > DAX 从开始和结束日期获取时间序列

问题描述

我有一系列具有开始和结束日期的事件,具有值和一系列其他属性。

 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 完成了此操作,但这非常繁重,需要计算每个可能的值,而即时计算可能会更快。

有什么帮助吗?非常感谢

标签: sqlpowerbidax

解决方案


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 中),因为它们将在您使用的过滤器上下文中可用(例如数据透视表)。

如果这不起作用,请粘贴示例行。


推荐阅读