Excel逻辑和If语句
我想写一个嵌套的if语句,执行以下操作:
如果C19 =否,C20 =否,C22 =是,则C30 =否
其他
如果C19 =是或C20 =是,C22 =是,则C30 =是
到目前为止,我有以下(非工作)代码:
=IF(OR(AND(C19="No",C20="No",C22="Yes"), C22="Yes","Yes","No"))
有任何想法吗?
谢谢。
你可以这样做,以迎合
- 通用testing
C30="Yes"
不符合(即给出"C22<>Yes"
) - C19和C20的配对testing均未得到满足(即给出
"C19 and/or C20 are invalid"
- C30的两个预期结果(
Yes
或No
)
更新:看到尼克的回答让我意识到,你在第二次testing中确实有了一个testing
= IF(C22 =“是”,IF(AND(C19 =“否”,C20 =“否”),“否”,IF(OR(C19 =“Yes”,C20 =“Yes” ,“C19和/或C20无效”)),“C22 <>是”)
假设如果他们不符合这两个条件中的任何一个,那么什么也不做,那么这个工作就可以了
=IF(AND(OR(C19="Yes",C20="Yes"),C22="Yes"),"Yes",IF(AND(C19="No",C20="No",C22="Yes"),"No",""))
IF语句需要有一个逻辑testing,有两个值,一个在testing结果为真时返回,另一个在testing结果为假时返回。
IF(logical_test, [value_if_true], [value_if_false])
但是,您可以通过在其中一个或两个值中embedded后续的IF语句来进行扩展,这可以recursion。 例如:
IF(logical_test,(IF(logical_test,[value_if_true],[value_if_false])),([value_if_false]))
recursion的每一步仍然是一个简单的布尔(真/假)testing,有两个可能的答案。
一旦你将条件归结为简单的真/假陈述,只需将它们插入到IF语句中即可。