2015-01-09 64 views
1

該公式在單元格I3內查找字符串「BFA」。如果找到,則返回「BFA」;如果不是,則返回「否」。你可以爲excel中的= if(isnumber(search)))公式做多個選項嗎?

=IF(ISNUMBER(SEARCH("BFA",I3)),"BFA","No") 

如何修改此功能以同時處理多個字符串?例如,如果找到{「BFA」,「MFA」,「BA」,「MA」}中的任何一個,則返回發現的內容;如果不是,則返回「否」。

+2

我不相信'SEARCH'可以像這樣工作......但是你可以嵌套一些IF(ISNUMBER(SEARCH(...)))語句。像'IF(ISNUMBER(SEARCH(「BFA」,I3)),「BFA」,IF(ISNUMBER(SEARCH(「MFA」,I3)),「MFA」,IF(...' – chancea 2015-01-09 19:18:03

回答

0

這將你在找什麼:

=IF(ISNUMBER(FIND("BFA",I3)),"BFA",IF(ISNUMBER(FIND("MFA",I3)),"MFA",IF(ISNUMBER(FIND("BA",I3)),"BA",IF(ISNUMBER(FIND("MA",I3)),"MA","NO"))) 

雖然多個嵌套If陳述你做,它可以變得很複雜。您可能會考慮在將來嘗試自定義公式。

3

這是絕對有可能的,但我會建議不同的方法:

=INDEX({"BFA","MFA","BA","MA","No"},MATCH(1,COUNTIF(I3,"*"&{"BFA","MFA","BA","MA",""}&"*"),0)) 

你也可以把物品來尋找各種細胞及其範圍內的結果,他們旁邊。所以,如果你有以下設置:

_____A____ ___B__ 
1 Search For Return 
2 BFA   BFA 
3 MFA   MFA 
4 BA   BA 
5 MA   MA 
6    No 

則公式是這樣的:

=INDEX($B$2:$B$6,MATCH(1,COUNTIF(I3,"*"&$A$2:$A$6&"*"),0)) 

爲了使其可擴展性和可更新我建議把該怎麼尋找和搜索應該返回什麼,如果如圖所示在一個範圍內找到。如果您願意,可以將其放在單獨的工作表上或隱藏這些列。

+0

這是一個不錯的方法 - 注意後一個公式需要數組輸入,如果I3是空白的,那麼對於這兩個版本你仍然會得到'#N/A'錯誤 – 2015-01-09 21:16:54

3

您可以使用此版本LOOKUP

=IFERROR(LOOKUP(2^15,SEARCH({"BFA","MFA","BA","MA"},I3),{"BFA","MFA","BA","MA"}),"No")

SEARCH函數返回數字或錯誤(取決於每個字符串是否被找到或沒有)的數組。當您在該數組中查找2^15時,匹配始終與最後的號碼匹配,然後LOOKUP返回相應的文本字符串。如果沒有匹配,您得到#N/AIFERROR將其轉換爲「否」。例如,如果您有任何包含「BFA」和「BA」的單元格,那麼該公式將返回列表中的最後一個單元格,即「BA」。

0

這是absolutely possible,但我會建議一個different approach

=INDEX({"BFA","MFA","BA","MA","No"},MATCH(1,COUNTIF(I3,"*"&{"BFA","MFA","BA","MA",""}&"*"),0)) 

你也可以把物品來尋找各種細胞及其範圍內的結果,他們旁邊。所以,如果你有以下設置:

_____A____ ___B__ 
1 Search For Return 
2 BFA   BFA 
3 MFA   MFA 
4 BA   BA 
5 MA   MA 
6    No 

則公式是這樣的:

=INDEX($B$2:$B$6,MATCH(1,COUNTIF(I3,"*"&$A$2:$A$6&"*"),0)) 

爲了使其scalable and updatable我建議把該怎麼尋找,如果在發現搜索應該返回什麼如圖所示。如果您願意,可以將其放在單獨的工作表上或隱藏這些列。