Excel 提示 IF/AND/MONTH 函数参数过多

Excel 提示 IF/AND/MONTH 函数参数过多

我需要它来处理 7 月份在加拿大或墨西哥的订单,金额超过 1,000 美元。我尝试使用的公式是:

=IF(OR(A2="Canada","Mexico", IF(C2>1000, "Ship by Air", IF(MONTH(B2=7, "Ship by Air", "Ship by Ground")))

我不知道如何用所有这些信息来写它。

答案1

OR需要每个部分都是自己的布尔表达式:

OR(A2="Canada","Mexico"

应该:

OR(A2="Canada",A2="Mexico")

或者

OR(A2={"Canada","Mexico"})

MONTH(B2

缺少)

所以:

=IF(OR(A2={"Canada","Mexico"}), IF(C2>1000, "Ship by Air", IF(MONTH(B2)=7, "Ship by Air", "Ship by Ground")))

另外,您缺少外部 IF 上的 FALSE,这可能是您想要的,但我倾向于添加它,以便我的公式更具可读性:

=IF(OR(A2={"Canada","Mexico"}), IF(C2>1000, "Ship by Air", IF(MONTH(B2)=7, "Ship by Air", "Ship by Ground")),FALSE)

但我们可以将里面的两个结合起来,因为输出在真实情况下是相同的:

=IF(OR(A2={"Canada","Mexico"}), IF(OR(C2>1000, MONTH(B2)=7), "Ship by Air", "Ship by Ground"),FALSE)

Ship by Air编辑:如果以下任何一项为真,则将返回:

  • A2 等于“加拿大”或“墨西哥”
  • C2 > 1000
  • B2 月份是 7 月

=IF(OR(A2={"Canada","Mexico"},C2>1000, MONTH(B2)=7), "Ship by Air", "Ship by Ground")

Ship by Air编辑2:如果以下所有条件都为真,则将返回此结果:

  • A2 等于“加拿大”或“墨西哥”
  • C2 > 1000
  • B2 月份是 7 月

=IF(AND(OR(A2={"Canada","Mexico"}),C2>1000, MONTH(B2)=7), "Ship by Air", "Ship by Ground")

答案2

你已经有了一个很好的开始;你的公式是你想要实现的“伪代码”。你只需要为 Excel 构建它。

第一个问题是函数使用的因数需要用括号括起来,这样 Excel 才能知道它们的开始和结束位置。您的第一个 OR 没有右括号;MONTH 函数也是如此。

第二个问题是 OR 需要包含完整条件的选择。Excel 不处理与列表的比较,至少在您使用的非数组格式中是这样。

此外,第一个 IF 不包含当 OR 为假时显示的结果,因此您可能需要添加它。

因此公式应如下所示:

=IF(OR(A2="Canada",A2="Mexico"), IF(C2>1000, "Ship by Air", IF(MONTH(B2)=7, "Ship by Air", "Ship by Ground")),"Not Canada or Mexico")

答案3

数一下括号:您有五个左括号和三个右括号。但计数必须匹配。

您可以看到表达式的正确缩进存在问题:

=IF(
    OR(
       A2="Canada","Mexico", 
       IF(
          C2>1000, "Ship by Air", 
          IF(
             MONTH(
                   B2=7, "Ship by Air", "Ship by Ground"
             )
          )
       )
// ---------------- Here your expression ends
    )    // missing
)        // missing

我标记了两个缺失的右括号。你想用哪个表达式来结束,)取决于你想实现的逻辑。

相关内容