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

套用到
Microsoft 365 Excel Mac 版 Microsoft 365 Excel Excel 2024 Mac 版 Excel 2024 Excel 2021 Mac 版 Excel 2021 Excel 2019 Excel 2016

本主題針對 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 技術社群 的專家詢問,或在 社群中獲得支援。

另請參閱

修正 #VALUE! 錯誤

FIND/FINDB 函式

搜尋/SEARCHB 功能

Excel 公式概觀

如何避免公式出錯

偵測公式中的錯誤

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

所有 Excel 函數 (依類別)