如何在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
相关产品推荐
相关产品推荐

