我需要一个excel公式的帮助。我试图实现以下行为:
因此,如果单元格B的值等于低,则在A单元格中值为“是” 如果单元格B中的值等于“中”或“高”,则公式应检查单元格C是否已填充且其内容是否不同,然后“请填写”或保留为“空白”。如果为true,则单元格A为“是”,否则为“否”。
如果单元格B的值为空,则单元格A也为“否”。
答案 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
实施例
答案 2 :(得分:1)
IF,OR,ISBLANK和UPPER的组合可以解决您的问题。
=IF(UPPER(B2)="LOW","Yes",IF(OR(UPPER(C2)="PLEASE FILL IN",ISBLANK(C2)),"Yes","No"))