如何在DAX的SWITCH语句中结合日期区分冬夏令时计算SLA
Power BI中结合冬夏令时的SLA计算DAX修改方案
首先需要明确:你的计算依赖每条咨询对应的日期列(假设表中列名为Masterdata[Dato],请替换为实际日期列名),以此判断是否处于夏令时区间(每年5月15日至9月15日),再分别应用冬夏令时的SLA阈值。
修改后的DAX公式如下:
SLA = VAR IsSummerTime = AND( OR( MONTH(Masterdata[Dato]) > 5 && MONTH(Masterdata[Dato]) < 9, AND(MONTH(Masterdata[Dato]) = 5, DAY(Masterdata[Dato]) >= 15), AND(MONTH(Masterdata[Dato]) = 9, DAY(Masterdata[Dato]) <= 15) ) ) VAR ResponseTime = Masterdata[Svartid i t] RETURN SWITCH(TRUE(), // 夏令时规则 IsSummerTime && ResponseTime > 14, "Over to arbeidsdager", IsSummerTime && ResponseTime > 7, "Innen to arbeidsdager", IsSummerTime && ResponseTime <=7, "Innen en arbeidsdag", // 冬令时规则 NOT(IsSummerTime) && ResponseTime > 15.5, "Over to arbeidsdager", NOT(IsSummerTime) && ResponseTime >7.75, "Innen to arbeidsdager", NOT(IsSummerTime) && ResponseTime <=7.75, "Innen en arbeidsdag" )
公式说明:
变量定义:
IsSummerTime:通过MONTH和DAY函数判断当前记录的日期是否在夏令时区间内(5月15日-9月15日)ResponseTime:简化响应时间列的引用,提升公式可读性
逻辑顺序:
- 先处理夏令时的三个区间判断(从大到小排序,避免逻辑覆盖)
- 再处理冬令时的三个区间判断,同样按阈值从高到低排序
注意事项:
- 请将
Masterdata[Dato]替换为你的表中实际存储咨询日期的列名 - 确保
Svartid i t列的数据类型为数值型(小时数),否则需要先做类型转换
- 请将
内容的提问来源于stack exchange,提问作者Neri Kim Thoresen
相关产品推荐
相关产品推荐

