Power BI DAX计算列IF逻辑错误排查:AND/OR语句公式修正
修正DAX计算列逻辑错误
原公式的问题在于DAX运算符优先级:&&(逻辑与)的优先级高于||(逻辑或),导致实际执行的逻辑和你的预期不符。原公式会被解析成:(DaysUntilExpiry >-100 && DaysUntilExpiry<=0 && DaysUntilExpiry_PreviousMonth <-100) || DaysUntilExpiry_PreviousMonth>0
这意味着只要DaysUntilExpiry_PreviousMonth>0,不管DaysUntilExpiry的取值如何,都会输出"Check Product",完全偏离了你的需求。
修正后的公式
CheckStatus = IF( 'Data'[DaysUntilExpiry] > -100 && 'Data'[DaysUntilExpiry] < 0 && ('Data'[DaysUntilExpiry_PreviousMonth] < -100 || 'Data'[DaysUntilExpiry_PreviousMonth] > 0), "Check Product" )
关键修正说明
- 把
DaysUntilExpiry_PreviousMonth的两个判断条件用括号包裹,确保先计算这部分的逻辑或,再和前面的DaysUntilExpiry条件做逻辑与运算,完全匹配你的预期规则:DaysUntilExpiry > -100且DaysUntilExpiry < 0- 同时满足
DaysUntilExpiry_PreviousMonth < -100或DaysUntilExpiry_PreviousMonth > 0
用你的测试数据验证:第一行DaysUntilExpiry=-2(符合第一个条件组),DaysUntilExpiry_PreviousMonth=1(符合第二个条件组的其中一项),会正确输出"Check Product",其他不符合条件的行不会触发该结果。
内容的提问来源于stack exchange,提问作者PythonBeginner
相关产品推荐
相关产品推荐

