Power BI计算列IF语句对度量值小时判断失效问题
问题解决:Power BI中逐行判断小时值大小标记异常
问题根源
你当前的valid计算列全部显示"Good",核心原因是计算列中引用度量值时,度量值的上下文是整个表而非单一行。hourhigh和hourlow作为度量值,在计算列中不会自动适配逐行上下文,导致比较逻辑失效,无法正确判断单行的小时大小关系。
解决方案
有两种可行的修改方式,任选其一即可:
方式1:将小时提取逻辑改为计算列
把hourhigh和hourlow从度量值改为计算列,确保每一行都能正确提取对应时间戳的小时:
// hourhigh 计算列 hourhigh = HOUR([timestamp_high]) // hourlow 计算列 hourlow = HOUR([timestamp_low]) // valid 计算列(保持原逻辑即可) valid = IF([hourhigh] > [hourlow], "Bad", "Good")
方式2:在valid计算列中直接内嵌小时提取逻辑
无需单独创建小时字段,直接在valid计算列中完成小时提取与判断,更简洁:
valid = VAR h_high = HOUR([timestamp_high]) VAR h_low = HOUR([timestamp_low]) RETURN IF(h_high > h_low, "Bad", "Good")
验证效果
修改后,你的示例数据中以下行将正确标记为"Bad":
- 04/11/2023:
hourhigh=5,hourlow=23→ 标记"Bad" - 06/11/2023:
hourhigh=3,hourlow=23→ 标记"Bad" - 11/11/2023:
hourhigh=1,hourlow=21→ 标记"Bad" - 13/11/2023:
hourhigh=5,hourlow=20→ 标记"Bad" - 14/11/2023:
hourhigh=0,hourlow=20→ 标记"Bad" - 19/11/2023:
hourhigh=1,hourlow=21→ 标记"Bad" - 24/11/2023:
hourhigh=0,hourlow=20→ 标记"Bad" - 26/11/2023:
hourhigh=0,hourlow=20→ 标记"Bad"
内容的提问来源于stack exchange,提问作者Damo
相关产品推荐
相关产品推荐

