Excel公式中的嵌套IF语句

时间:2009-06-23 20:56:38

标签: excel

所以,在前言中,我是这个Excel业务的完全新手。我已经通过谷歌找到了类似的例子,所以我认为我太遥远了:

=IF( AND(D6=FALSE, OR(ISBLANK(B10),B10=0) ),IF( AND(D6=TRUE,B10>=1)," ","Enter number of components"),"fail")

基本上,第一个IF块评估AND表达式的内容。如果该条件通过,我想评估第二个IF块(如果条件失败,它将向单元格回显错误)。

预先感谢您的协助:)

6 个答案:

答案 0 :(得分:2)

根据你的代码,你首先评估D6是否为FALSE,当实现时,你会尝试评估D6 = TRUE。从第一次评估开始,你已经知道这是错误的,所以你的逻辑是有缺陷的。

在我看来,您可能只想评估一次

=IF( AND(D6=FALSE, OR(ISBLANK(B10),B10=0) ), "Enter number of components", "Fail")

答案 1 :(得分:1)

对于这种复杂的东西,你应该尝试将它分解成每个单元格中的小函数。一个好的候选者是将AND移动到它自己的单元格中,然后将其用作AND的第一个参数。我不确定你是否可以有一个IF,所以尝试将value_if_true和value_if_false设置为其他单元格,并在那里进行单独的计算。

答案 2 :(得分:1)

我打破了逻辑,使公式中的内容更加清晰。也许这将有助于您将IF语句的工作方式组合在一起。

if (D6 is false & B10 is blank)
     then if (D6 is true & B10 >= 1)
          then "" THIS WILL NEVER HAPPEN
          else "Enter number of components"
else "fail"

答案 3 :(得分:0)

首先,让我们看一下代码的结构:

if D6 = false AND (isblank(B10) OR B10 = 0)
  if D6 = true AND B10 >= 1
    put " "
  else
    put "Enter number of components"
else
  put "fail"

您会发现一个问题是,每次进入内部IF语句时,D6都为FALSE。这意味着D6 = TRUE总是导致false,因此第二个IF语句总是失败。换句话说,您的代码相当于:

=IF(AND(D6=TRUE, OR(ISBLANK(B10), B10=0)), "Enter number of components", "fail")

这不是你想要的吗?

答案 4 :(得分:0)

我认为你正在寻找这个:

=IF(OR(ISBLANK(B10),B10=0),"Enter number of components",IF(B10<1,"Fail",""))

如果我理解正确,你想:

  • 当单元格B10为空或零时,显示“输入组件数”
  • 如果B10为负值,则显示“失败”
  • 在所有其他情况下,不显示任何内容(“”)

    上述陈述回应了同样的逻辑。

  • 答案 5 :(得分:-1)

    原来这完成了工作:

    =IF( OR( AND(D6=TRUE,  OR(ISBLANK(B10),B10=0)), AND(D6=FALSE, OR(B10>=1))), "Selection Invalid","")
    

    似乎试图将第二个IF嵌套在第一个IF的“那个”块内,这让人感到愤怒。上述工作,感谢您的回复!