2013-04-02 76 views
9

我需要在Excel中根據兩個不同單元格中的文本編寫「if」語句。多個IF和陳述excel

If E2 ='in play' and F2 ='closed'  output 3 
If E2= 'in play' and F2 ='suspended' output 2 
If E2 ='In Play' and F2 ='Null'  output 1 
If E2 ='Pre-Play' and F2 ='Null'  output -1 
If E2 ='Completed' and F2 ='Closed'  output 2 
If E2 ='Suspended' and F2 ='Null'  output 3 
If anything else output -2 

其中null是在細​​胞

沒有價值,我試圖用下面的代碼來做到這一點,但我似乎無法獲得兩個或更多,如果AND語句一起工作。我怎麼解決這個問題?

=IF(AND(E2="In Play",F2="Closed"),3, -2), IF(AND(E2="In Play",F2=" Suspended"),3,-2) 

回答

16

考慮您有多個 「測試」,例如,

  1. 如果E2 = '在戲' 和F2 = '封閉',輸出3
  2. 如果E2 = '在戲'和F2 =「暫停」,輸出2
  3. 等等

你真正需要做的就是把連續測試中False說法。您目前正試圖用逗號分隔每個測試,而這不起作用。

你的前三個測試都可以在一個表達式中加入這樣的:

=IF(E2="In Play",IF(F2="Closed",3,IF(F2="suspended",2,IF(F2="Null",1))))

記住,每個連續的測試需要在前面測試的嵌套false參數,你可以這樣做:

=IF(E2="In Play",IF(F2="Closed",3,IF(F2="suspended",2,IF(F2="Null",1))),IF(AND(E2="Pre-Play",F2="Null"),-1,IF(AND(E2="completed",F2="closed"),2,IF(AND(E2="suspended",F2="Null"),3,-2))))

+0

+1大衛,我搞砸了對礦井括號 - 我意識到,當我看到你的版本!現在編輯...... –

+0

不用擔心,我貼我的只看到你打我:) –

8

用你的ANDs你不應該有一個FALSE值-2,直到最後,例如,只有2 AND將

=IF(AND(E2="In Play",F2="Closed"),3,IF(AND(E2="In Play",F2=" Suspended"),3,-2))

儘管它可能是嵌套國際單項體育聯合會和與運算的組合更好 - 嘗試像這樣完整的公式:[編輯 - 感謝大衛]

=IF(E2="In Play",IF(F2="Closed",3,IF(F2="Suspended",2,IF(F2="Null",1))),IF(AND(E2="Pre-play",F2="Null"),-1,IF(AND(E2="Completed",F2="Closed"),2,IF(AND(E2="Pre-play",F2="Null"),3,-2))))

爲了避免像上面那樣的長公式,你可以在K2:K5這樣的列中創建一個具有所有E2可能性的表格,並且可以像L1:N1那樣在一行中創建所有F2可能性,然後在L2:N5中填寫所需結果並使用此公式

=INDEX($L$2:$N$5,MATCH(E2,$K$2:$K$5,0),MATCH(F2,$L$1:$N$1,0))

1

嘗試以下操作:

=IF(OR(E2="in play",E2="pre play",E2="complete",E2="suspended"), 
IF(E2="in play",IF(F2="closed",3,IF(F2="suspended",2,IF(ISBLANK(F2),1,-2))), 
IF(E2="pre play",IF(ISBLANK(F2),-1,-2),IF(E2="completed",IF(F2="closed",2,-2), 
IF(E2="suspended",IF(ISBLANK(F2),3,-2))))),-2) 
-1

進行這些溝通2

=IF(OR(AND(MID(K27,6,1)="N",(MID(K27,6,1)="C"),(MID(K27,6,1)="H"),(MID(K27,6,1)="I"),(MID(K27,6,1)="B"),(MID(K27,6,1)="F"),(MID(K27,6,1)="L"),(MID(K27,6,1)="M"),(MID(K27,6,1)="P"),(MID(K27,6,1)="R"),(MID(K27,6,1)="P"),ISTEXT(G27)="61"),AND(RIGHT(K27,2)=G27)),"Good","Review") 

=IF(AND(RIGHT(K27,2)=G27),"Good","Review")