2012-02-01 114 views
0

我試圖做寫一個嵌套的if語句執行以下操作:Excel的邏輯和if語句

IF C19 =否,C20 =否,C22 =是那麼C30 =無

其他

IF C19 = Yes或C20 = Yes和C22 =是那麼C30 =是

到目前爲止,我有以下的(非工作)代碼:

=IF(OR(AND(C19="No",C20="No",C22="Yes"), C22="Yes","Yes","No")) 

任何想法?

謝謝。

+0

我想你還有其他一些排列失蹤,使整個陳述未完成。另外,將你的邏輯分組到第二點。是((C19 =是或C20 =是)和C22 =是),或者是((C19 =是或(C20 =是且C22 =是) – Dave 2012-02-01 09:44:04

+0

感謝通靈的建議,一些排列失蹤,但我相當肯定他們不需要處理。它是((C19 =是或C20 =是)並且C22 =是),那麼C30 =是 – Ckeane 2012-02-01 09:47:54

回答

0

你可以做這樣的迎合

  • 公共測試C30="Yes"得到滿足(即給"C22<>Yes"
  • 爲C19 AMD C20 得到滿足兩個配對測試(即給出"C19 and/or C20 are invalid"
  • 您對C30的兩個期望結果(YesNo

更新:看到尼克的回答讓我意識到,你確實有一個或測試你的第二個測試

= IF(C22 = 「是」,IF(AND(C19 = 「否」, C20 =「否」),否,IF(OR(C19 =「是」,C20 =「是」),「是」,「C19和/或C20無效」),「C22 <>是」 )

3

假設,如果他們不符合這些條件,然後什麼都不做,那麼這應該工作

=IF(AND(OR(C19="Yes",C20="Yes"),C22="Yes"),"Yes",IF(AND(C19="No",C20="No",C22="Yes"),"No","")) 
+0

對於第一個正確答案+1,雖然我確實建議標記哪個部分沒有給出預期結果而不是「」catchall – brettdj 2012-02-01 10:40:52

0

IF語句需要有一個邏輯測試,有兩個值,一個在測試爲真時返回,另一個在測試爲假時返回。

IF(logical_test, [value_if_true], [value_if_false]) 

但是,您可以通過在其中一個或兩個值中嵌入後續的IF語句來進行擴展,這可以遞歸。例如:

IF(一個logical_test,(IF(一個logical_test,[value_if_true],[value_if_false])),([value_if_false]))

遞歸的每個步驟仍然是一個簡單的布爾(真/假)測試,有兩個可能的答案。

一旦你將條件歸結爲簡單的真/假陳述,只需將它們插入到IF語句中即可。