Excel中的逻辑公式 - 需要帮助

时间:2013-11-12 09:23:08

标签: excel excel-formula

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

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

因此,如果单元格B的值等于低,则在A单元格中值为“是” 如果单元格B中的值等于“中”或“高”,则公式应检查单元格C是否已填充且其内容是否不同,然后“请填写”或保留为“空白”。如果为true,则单元格A为“是”,否则为“否”。

如果单元格B的值为空,则单元格A也为“否”。

3 个答案:

答案 0 :(得分:2)

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

=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")))

请注意,有一种情况是您遗漏了您的定义(提供“未定义”)。这可能不是故意的。

如果实际上并不打算“未定义”,请注意您只有两个可能的输出,因此条件可以用不同的测试替换,只有一个条件组合AND / OR s而不是嵌套的IF s。

答案 1 :(得分:1)

我不熟悉公式,但这样做

=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功能(但要求你分别在每个单元格中输入公式,然后将其粘贴在一个模块中,然后在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

实施例

enter image description here

答案 2 :(得分:1)

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

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

Example of formula