PowerBI同表行对比:按ID与月份判断跨月重复值的DAX公式问题
问题原因
你原来的DAX代码存在两个逻辑漏洞:
- 第二个
FILTER函数没有限定同ID匹配,只要全表存在小于当前行月份的记录就会触发条件,导致同ID首月数据被错误标记 - 没有先判断当前ID是否真的存在跨月出现的情况,也没有和当前ID的最小出现月份做对比
正确DAX代码
Duplicate = VAR CurrentID = Data[ID] -- 若你的ID字段为Policy No,此处替换为Data[Policy No] VAR CurrentMonth = Data[Month] -- 统计当前ID对应的所有不同月份数量 VAR IDMonthCount = CALCULATE(DISTINCTCOUNT(Data[Month]), ALLEXCEPT(Data, Data[ID])) -- 提取当前ID首次出现的最小月份 VAR IDFirstMonth = CALCULATE(MIN(Data[Month]), ALLEXCEPT(Data, Data[ID])) RETURN IF( IDMonthCount > 1 && CurrentMonth > IDFirstMonth, "YES", "NO" )
逻辑说明
该代码完全匹配你的需求规则:
- 若同一ID所有记录都在同一个月:
IDMonthCount=1,所有行返回NO - 若同一ID跨多个月出现:首次出现的最小月份所有行返回
NO,晚于首次月份的所有行返回YES
和你给出的预期效果示例完全一致。
内容的提问来源于stack exchange,提问作者user11524670
相关产品推荐
相关产品推荐

