如何修正 FIND/FINDB 及 SEARCH/SEARCHB 函數中的 #VALUE! 錯誤

本主題針對 FIND/FINDB 和 SEARCH/SEARCHB 函數中發生 #VALUE! 錯誤的常見案例提供相關協助。

FIND 和 SEARCH 函數的幾點注意事項

  • FINDSEARCH 函數十分相似,它們的運作方式相同,可找出特定字元或在文字字串中找出特定文字字串。這兩個函數的不同之處在於 FIND 會區分大小寫,SEARCH 則不會。因此,如果您不想比對文字字串中的字母大小寫,請使用 SEARCH。

  • 如果您想要根據指定的字元數傳回字串的函數,請搭配 FIND 使用 MID 函數。如需使用 MID 和 FIND 組合的相關資訊和範例,請參閱 FIND 說明主題。

  • 這些函數採用相同的語法:find_text, within_text, [start_num])。這個語法的意思是:您想要尋找什麼?您想在哪裡搜尋?您想從哪個位置開始搜尋?

問題:在 within_test 字串中找不到 find_text 引數中的值

如果函數找不到指定文字字串中的文字,就會傳回 #VALUE! 錯誤。

例如,假設函數如下所示:

  • =FIND("gloves","Gloves (Youth)",1)

這會傳回 #VALUE! 錯誤,因為在字串中找不到相符的「gloves」,只找得到「Gloves」。請記得,FIND 會區分大小寫,因此請確認 find_text 中的值與 within_text 引數中的字串大小寫完全一致。

不過,此 SEARCH 函數會傳回 1 這個值,因為它不會區分大小寫:

  • =SEARCH("gloves","Gloves (Youth)",1)

解決方法:視需要修正語法。

問題:start_num 引數設為零 (0)

start_num 引數為選擇性的引數,如果您忽略它,預設的值會是 1。不過,如果語法中出現這個引數,且其值設為 0,則您就會收到 #VALUE! 錯誤。

解決方法:移除不必要的 start_num 引數,或是將其設為正確的值。

問題:start_num 引數大於 within_text 引數

例如,假設函數為:

  • =FIND(“s”,”Functions and formulas”,25)

此函數會「Functions and for mulas」字串 (within_text) 的第 25 個字元 (start_num) 開始尋找「s」,但由於該字串只有 22 個字元,因此會傳回 #VALUE! 錯誤。

提示:  若要尋找文字字串中的字元總數,請使用 LEN function

解決方法:視需要修改起始數字。

對特定函數有任何問題嗎?

在 Excel 社群論壇張貼問題

協助我們改進 Excel

您是否有任何關於下一版 Excel 的改善方式的建議?如果有的話,請參閱 Excel User Voice 中的主題。

請參閱

修正 #VALUE! 錯誤

FIND/FINDB 函數

SEARCH/SEARCHB 函數

Excel 公式概觀

如何避免公式出錯

使用錯誤檢查偵測公式中的錯誤

所有 Excel 函數 (按字母排序)

所有 Excel 函數 (依類別)

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×