2014-07-23 18 views
1

我正在嘗試編寫一個公式,它需要一個單詞並通過excel中的IF函數處理它,這些值是公式中的列表。我現在的問題是,我擁有Large,X-Large和1X-Large的文字。 X-Large和1X-Large是唯一的字符串,需要IF功能才能區分兩者。特定文本字符串的IF函數

這是我到目前爲止。

=if(or(isnumber(search("Small",af2)),ISNUMBER(SEARCH("Medium",AF2)),ISNUMBER(SEARCH("Large",AF2)),,ISNUMBER(SEARCH("X-Large",AF2))),"Small",or(isnumber(search("1X-Large",af2)),isnumber(search("2X-Large",af2)),isnumber(search("3X-Large",af2)),isnumber(search("4X-Large",af2))),"1X-Large") 

我不明白爲什麼它顯示一個錯誤,只有當它工作時顯示小。

所有幫助表示讚賞

+0

現在,你的公式的結果只可能是 「小」 或「1X - 大「,這是打算?你能提供預期結果的樣本數據嗎? – tigeravatar

+0

您無法檢查是否必須檢查位置1的編號。由於Large發生在X-Large和1x-Large中,結果爲3或4,這是一個數字,但不夠具體。你的支票必須是(搜索(「x-large」,AF2)= 1)除1以外的任何內容表示文本沒有以此開頭。這可能還不夠,因爲你需要一個精確的匹配。你可能會更好的使用'match'而不是'search' – xQbert

回答

0

您當前的公式不應該工作,應該給你一個錯誤關於有太多的爭論。您的功能故障:

=if(
    or(isnumber(search("Small",af2)),ISNUMBER(SEARCH("Medium",AF2)),ISNUMBER(SEARCH("Large",AF2)),,ISNUMBER(SEARCH("X-Large",AF2))), 
    "Small", 
    or(isnumber(search("1X-Large",af2)),isnumber(search("2X-Large",af2)),isnumber(search("3X-Large",af2)),isnumber(search("4X-Large",af2))), 
    "1X-Large" 
) 

您不能在IF中使用4個參數。你需要有一個最大的3.也許你的意思是:

=if(
    or(isnumber(search("Small",af2)),ISNUMBER(SEARCH("Medium",AF2)),ISNUMBER(SEARCH("Large",AF2)),,ISNUMBER(SEARCH("X-Large",AF2))), 
    "Small", 
    IF(
    or(isnumber(search("1X-Large",af2)),isnumber(search("2X-Large",af2)),isnumber(search("3X-Large",af2)),isnumber(search("4X-Large",af2))), 
    "1X-Large" 
) 
) 

但是,這並沒有解決有關X-Large部分您的問題。爲了迎合這一點,您可以檢查X-Large系列是否先存在,然後是其他存在。

=IF(
    OR(ISNUMBER(SEARCH("1X-Large",AF2)),ISNUMBER(SEARCH("2X-Large",AF2)),ISNUMBER(SEARCH("3X-Large",AF2)),ISNUMBER(SEARCH("4X-Large",AF2))), 
    "1X-Large", 
    IF(
    OR(ISNUMBER(SEARCH("Small",AF2)),ISNUMBER(SEARCH("Medium",AF2)),ISNUMBER(SEARCH("Large",AF2)),ISNUMBER(SEARCH("X-Large",AF2))), 
    "Small" 
) 
) 

雖然你可以把它與該短:

=IF(
    OR(ISNUMBER(SEARCH({"1X-Large","2X-Large","3X-Large","4X-Large"},AF2))), 
    "1X-Large", 
    IF(
    OR(ISNUMBER(SEARCH({"Small","Medium","Large","X-Large"},AF2))), 
    "Small" 
) 
) 

在一個行...

=IF(OR(ISNUMBER(SEARCH({"1X-Large","2X-Large","3X-Large","4X-Large"},AF2))),"1X-Large",IF(OR(ISNUMBER(SEARCH({"Small","Medium","Large","X-Large"},AF2))),"Small")) 
+0

非常感謝傑瑞和其他回覆的人! – eagrubman

+0

@eagrubman不客氣!這是否解決了你的問題? – Jerry

+0

它確實解決了它,我只需要坐下來調整到我正在處理的當前工作表。我正在嘗試使電子表格創建更高效​​。 – eagrubman

相關問題