You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Power BI的SWITCH语句中结合日期区分冬夏令时计算SLA

解决Power BI中区分夏令/冬令时的SLA计算问题

首先,你的数据集需要包含咨询对应的日期字段(比如命名为Dato,即咨询发起或响应开始的日期),用于判断该记录属于夏令时还是冬令时区间。

修改后的DAX公式

SLA = 
VAR CurrentDate = Masterdata[Dato]
VAR IsSummerTime = 
    AND(
        MONTH(CurrentDate) > 5 || (MONTH(CurrentDate) = 5 && DAY(CurrentDate) >= 15),
        MONTH(CurrentDate) < 9 || (MONTH(CurrentDate) = 9 && DAY(CurrentDate) <= 15)
    )
VAR OneWorkdayHours = IF(IsSummerTime, 7, 7.75) // 冬令时7小时45分=7.75小时
VAR TwoWorkdaysHours = OneWorkdayHours * 2
RETURN
SWITCH(
    TRUE(),
    Masterdata[Svartid i t] > TwoWorkdaysHours, "Over to arbeidsdager",
    Masterdata[Svartid i t] > OneWorkdayHours, "Innen to arbeidsdager",
    Masterdata[Svartid i t] <= OneWorkdayHours, "Innen en arbeidsdag"
)

公式说明

  • IsSummerTime变量:通过月份+日期的组合逻辑,判断当前记录的日期是否落在每年5月15日至9月15日的夏令时区间。
  • OneWorkdayHours变量:根据夏令时/冬令时返回对应单工作日时长——夏令时为7小时,冬令时为7.75小时(即7小时45分)。
  • TwoWorkdaysHours变量:直接用单工作日时长乘以2,得到两个工作日的总时长阈值。
  • SWITCH逻辑:基于计算出的精准时长阈值,对每条记录的SLA分类进行判断,替代了之前固定的平均值阈值。

示例验证(基于日期字段)

  • 若某记录Dato为2024年6月10日(夏令时),Svartid i t为7.1小时 → 结果为Innen en arbeidsdag
  • 若某记录Dato为2024年10月20日(冬令时),Svartid i t为8小时 → 结果为Innen to arbeidsdager(单工作日阈值7.75小时,8>7.75且≤15.5)

内容的提问来源于stack exchange,提问作者Neri Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 21:46:06