2013-12-12 140 views
1

我有一個向量具有不同的值。在它旁邊的向量中,我想使用multiple = IF(FIND(IF(FIND(),IF(FIND(),.....語句)多個IF語句Excel 2007

這是我的數據示例,想細胞旁邊出來:

COMPLAINT   | DESCRIPTION <-- How I would like it to come out 
CHF    | CHF 
COPD (Nos)   | COPD 
Chest, Pain, Acute | CHEST PAIN 
CP     | CHEST PAIN 
...    | ... 

我已經爲這個如下,這是不行的書面:

=IF(FIND("CHF",E3,1),"CHF",IF(FIND("COPD",E3,1),"CHF",0)) 

我需要擴大上述至少接受5個不同的論點,我嘗試使用這個帖子here,但我沒有跟着它。

編輯

我期望功能的工作是這樣的:

IF FIND "CHF" 
    THEN "CHF" 
ELSE IF FIND "COPD" 
    THEN "COPD" 
ELSE IF FIND "CP" 
    THEN "CHEST PAIN" 
... 

謝謝

+0

以什麼方式不起作用?結果與預期結果有何不同? –

+0

我需要添加我期望的問題,我很抱歉,我需要的是如果找到「CHF」然後「CHF」但是如果找到「COPD」然後「COPD」但是如果「CP」 「,...,等等。 –

回答

2

我認爲這是它的更好,如果你有某種形式的「字典」的看提高價值。

例如,有一個表的地方執行以下操作:

CHF   CHF 
COPD   COPD 
CP   CHEST PAIN 
Chest Pain CHEST PAIN 

比方說,這些都是在範圍G2:H5CHF開始在細胞A2

的第一步是,試圖匹配CHFCOPDCPChest Pain到細胞A2。您可以使用SEARCHFIND等效,但區分大小寫)。

=SEARCH($G$2:$G$5,A2) 

這會給你錯誤和一個數字,如果有匹配。爲了對付你的第三個樣品的情況下,你可以先用SUBSTITUTE刪除逗號:

=SEARCH($G$2:$G$5,SUBSTITUTE(A2,",","")) 

CHF,你會得到

1,#VALUE!,#VALUE!,#VALUE! 

使用的IFERROR()可以使結果有點漂亮。您可以從獲得指數1,以使用MATCH從查找表的第二個表中獲取CHF:

=MATCH(1,SEARCH($G$2:$G$5,SUBSTITUTE(A2,",","")),0) 

並使用INDEX從查找錶帶回的單元格的值...

=INDEX($H$2:$H$5,MATCH(1,SEARCH($G$2:$G$5,SUBSTITUTE(A2,",","")),0)) 

您還可以更改查找表的大小以適應任何數量的查找值。唯一的缺點是它會犧牲性能,但如果Excel有更多的值需要檢查,那就很自然。

現在,由於SEARCH(它取多個值而不是單個值),因此此公式是一個數組公式。這樣,而不是按輸入,你必須持有按Ctrl +然後按Enter鍵它才能正常工作。

+0

非常感謝您的支持。我現在出去,但會在早上嘗試這個,如果它有效,那麼我會接受它作爲答案。 –

+0

@MCP_infiltrator好的,這對我很好。其實我忘了提及它是一個數組公式,所以我在最後加了一點。 ^^; – Jerry

+0

搞定了,非常感謝! –