Google Sheet 的 SEARCH 函數 用來在文字中搜尋子字串,並傳回子字串在文字中的起始位置(以字元計算,從左到右)。它不區分大小寫,因此比 FIND 函數 更靈活。
SEARCH 函數語法
=SEARCH(搜尋值, 文字, [起始位置])
參數說明
1. 搜尋值(search_for):
• 要搜尋的子字串,例如 “apple” 或 “123”。
2. 文字(text_to_search):
• 要搜尋的完整文字,例如 “I love apples”。
3. [起始位置(starting_at)](選填):
• 從哪個字元開始搜尋,預設為 1(從第一個字元開始)。
範例 2:指定起始位置
=SEARCH("a", "Banana", 3)
=4
• 搜尋值:”a”
• 文字:”Banana”
• 起始位置:3
• 結果:4,因為從第 3 個字元開始,”a” 在第 4 個字元。
範例 3:區分與不區分大小寫
SEARCH(不區分大小寫)
=SEARCH("apple", "I love APPLES")
=8
• 結果:傳回 8,因為 SEARCH 忽略大小寫。
FIND(區分大小寫)
=FIND("apple", "I love APPLES")
• 結果:傳回錯誤,因為 FIND 函數區分大小寫。
進階應用
範例 4:判斷文字是否包含子字串
使用 SEARCH 檢查文字是否包含特定子字串:
=IF(ISNUMBER(SEARCH("apple", A1)), "包含", "不包含")
• SEARCH 函數:傳回子字串位置或錯誤。
• ISNUMBER:檢查 SEARCH 是否傳回數值。
• 結果:如果 A1 包含 “apple”,傳回 “包含”。
範例 5:顯示子字串前的文字
從文字中找出特定子字串前的內容:
=LEFT(A1, SEARCH("-", A1) - 1)
• 假設 A1 是 “123-456″。
• SEARCH:找到 “-” 的位置(第 4 位)。
• LEFT:提取第 1 至第 3 個字元。
• 結果:”123″。
範例 6:顯示子字串後的文字
從文字中找出特定子字串後的內容:
=RIGHT(A1, LEN(A1) - SEARCH("-", A1))
• 假設 A1 是 “123-456″。
• SEARCH:找到 “-” 的位置(第 4 位)。
• LEN(A1):計算整段文字的長度。
• RIGHT:提取從 “-” 之後的所有字元。
• 結果:”456″。
範例 7:搜尋多重關鍵字
檢查文字是否包含任一關鍵字:
=IF(OR(ISNUMBER(SEARCH("apple", A1)), ISNUMBER(SEARCH("banana", A1))), "包含", "不包含")
OR 函數:如果 A1 包含 “apple” 或 “banana”,傳回 “包含”。
錯誤處理
1. 如果 搜尋值 不存在,SEARCH 會傳回錯誤值 #VALUE!。
• 可使用 IFERROR 函數處理:
=IFERROR(SEARCH("apple", A1), "未找到")
2. 如果 起始位置 超出文字長度,SEARCH 也會傳回錯誤。
• 確保起始位置不大於文字長度。
常見問題
1. SEARCH 與 FIND 的差異
• SEARCH:不區分大小寫。
• FIND:區分大小寫。
2. SEARCH 適用於數字嗎?
• 是的,SEARCH 可以處理數字(例如 “123”)。
3. 多層的複雜應用
• SEARCH 可以搭配 LEFT、RIGHT、MID、IF 等函數處理複雜的文字操作。