【问题标题】:DAX obtaining time series from Start and End DateDAX 从开始和结束日期获取时间序列
【发布时间】:2018-07-04 14:39:47
【问题描述】:

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

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

有什么帮助吗? 非常感谢

【问题讨论】:

  • 逻辑是什么,即2018-01-01到2018-03-15如何导致31*15天?
  • @PrakashGautam - 为更清晰的日期编辑。逻辑是期间与月份的重叠。如果从 3 月 17 日开始到 4 月结束,则 3 月的天数为 31-17 = 14,因此 14/31 /31 = 45%,乘以每天的价值 = 22.58

标签: sql powerbi dax


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-09-06
    • 2020-02-22
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    相关资源
    最近更新 更多