在Excel中的逻辑公式 – 需要帮助

我需要一个excel公式的帮助。 我正在尝试实现以下行为:

  • 该公式在单元格A中
  • 在单元格B中,我们可以有3个可能的值 – 低,中或高

因此,如果单元格B的值等于低,那么在A单元格中的值为“是”。如果单元格B中的值等于中或高,则公式应检查单元格C是否已填充,其内容是否与“请填写“或者留下”空白“。 如果是,那么单元格A是“是”,如果不是,那么它是“否”。

如果单元格B的值是空白,那么单元格A也是“否”。

我不擅长公式,但是这样做

 =IF(LEN(B1)>0,IF(B1="low","Yes",IF(B1="medium",IF(C1<>"please fill in",IF(C1<>"","Yes","No"),"No"),IF(B1="high",IF(B1<>"please fill in",IF(LEN(C1)>0,"Yes","No"),"No"),"No"))),"No") 

如果你想要一个VBA函数(但要求你分别在每个单元格中input公式,那么将其粘贴在一个模块中,然后在列A中使用它

 Function CheckIt() As String Dim r As Long r = ActiveCell.Row If Range("B" & r) = "low" Then CheckIt = "Yes" Else If (Range("B" & r) = "medium" Or Range("B" & r) = "high") Then If ((Range("C" & r) <> "please fill in") And (Not IsEmpty(Range("C" & r)))) Then CheckIt = "Yes" Else CheckIt = "No" End If Else CheckIt = "No" End If End If End Function 

在这里输入图像说明

以下公式以文本方式复制您询问的逻辑

 =IF(B1="Low","Yes",IF(OR(B1="Medium",B1="High"),IF(OR(ISBLANK(C1),C1<>"please fill in"),"Yes","No"),IF(ISBLANK(B1),"No","Undefined"))) 

请注意,有一种情况是您不在自己的定义(其中给出“未定义”)。 这可能不是有意的。

如果“Undefined”实际上并不打算,还要注意,你只有两个可能的输出,所以这个条件可以用一个不同的testing代替,单个条件结合AND / OR而不是嵌套的IF

IF,OR,ISBLANK和UPPER的组合应该可以解决您的问题。

 =IF(UPPER(B2)="LOW","Yes",IF(OR(UPPER(C2)="PLEASE FILL IN",ISBLANK(C2)),"Yes","No")) 

公式的例子