Power BI中IF/OR/AND逻辑错误:添加条件列后规则失效求助
问题排查与修复方案
核心问题
你的M代码存在两个关键问题导致规则失效:
- 逻辑运算符优先级错误:M语言中
and的优先级高于or,当前第三步条件会被解析为([Code] = "4") or ([Code] = "5" and [Quantity] >0),这会让所有Code=4的行无论Quantity取值如何都被归为Step 3_A,直接打乱前两步的规则逻辑。 - 语法不完整:整个
if语句缺少最后的else分支和闭合标记,语法错误会导致整个条件列规则无法正常执行。
修复后的M代码
= Table.AddColumn(#"Filtered Rows", "Category", each if [#"Code"] = "1" or [#"Code"] = "2" then "Step 1" else if [#"Code"] = "3" then "Step 2" else if ([#"Code"] = "4" or [#"Code"] = "5") and [Quantity] > 0 then "Step 3_A" else if ([#"Code"] = "4" or [#"Code"] = "5") and [Quantity] < 0 then "Step 3_B" else "Uncategorized" // 补充默认分支,避免出现空值 )
关键修改说明
- 给
Code=4或5的条件添加括号,确保先判断Code是否符合范围,再结合Quantity的条件进行逻辑与运算,保证第三步的规则逻辑正确。 - 补充
else默认分支和语句末尾的闭合标记,修复语法错误,确保整个条件列代码能正常运行。
内容的提问来源于stack exchange,提问作者Error 1004
相关产品推荐
相关产品推荐

