本主題針對 FIND/FINDB 和 SEARCH/SEARCHB 函數中發生 #VALUE! 錯誤的常見案例提供相關協助。
FIND 和 SEARCH 函數的幾點注意事項
- FIND 和 SEARCH 功能非常相似。 它們的運作方式相同——在另一個文字字串中找到一個字元或文字字串。 這兩個功能的差別在於 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 技術社群 的專家詢問,或在 社群中獲得支援。