Excel 公式:檢查儲存格是否包含多個值其中之一,但排除其他值
假設您有兩份值清單,想檢查 B3 儲存格是否包含 E3:E5 範圍中的任一值,同時又不包含 F3:F4 範圍中的任何值(如下圖所示)。本教學將提供一個實用公式,協助您在 Excel 中快速完成這項任務,並詳細說明該公式的各個引數。
通用公式:
| =(SUMPRODUCT(--ISNUMBER(SEARCH(include,text)))>0) *(SUMPRODUCT(--ISNUMBER(SEARCH(exclude,text)))=0) |
引數
| Text: the text string you want to check. |
| Include: the values you want to check if argument text contains. |
| Exclude: the values you want to check if argument text does not contain. |
返回值:
此公式會傳回 1 或 0:當儲存格包含任一需包含的值,且不包含任何需排除的值時,傳回 1;否則傳回 0. 其中,1 與 0 會被視為邏輯值 TRUE 與 FALSE 來處理。
公式運作方式
假設您想檢查 B3 儲存格是否包含 E3:E5 範圍中的任一值,同時排除 F3:F4 範圍中的值,請使用下列公式:
| =(SUMPRODUCT(--ISNUMBER(SEARCH($E$3:$E$5,B3)))>0)*(SUMPRODUCT(--ISNUMBER(SEARCH($F$3:$F$4,B3)))=0) |
按下 Enter 鍵,立即取得檢查結果!
說明
第 1 部分:(SUMPRODUCT(--ISNUMBER(SEARCH($E$3:$E$5,B3)))>0) 檢查儲存格是否包含 E3:E5 中的值
SEARCH 函數:SEARCH 函數會傳回某文字字串在另一字串中首次出現的位置。若找到相符文字,即傳回其相對位置;若未找到,則傳回 #VALUE! 錯誤。例如,公式 SEARCH($E$3:$E$5,B3) 會在 B3 儲存格中逐一搜尋 E3:E5 範圍內的每個值,並傳回各文字字串於 B3 中的位置,最終輸出陣列結果如下:{1;7;12}。
ISNUMBER 函數:當儲存格為數字時,ISNUMBER 函數會傳回 TRUE。因此 ISNUMBER(SEARCH($E$3:$E$5,B3)) 會傳回陣列結果 {TRUE,TRUE,TRUE},因為 SEARCH 函數找到了 3 個相符項目。
--ISNUMBER(SEARCH($E$3:$E$5,B3)) 會將 TRUE 值轉換為 1,FALSE 值轉換為 0,因此此公式會將陣列結果轉換為 {1;1;1}。
SUMPRODUCT 函數:用於將多個範圍或陣列相乘後加總,並傳回乘積總和。SUMPRODUCT(--ISNUMBER(SEARCH($E$3:$E$5,B3))) 傳回 1+1+1=3.
最後,將左側公式 SUMPRODUCT(--ISNUMBER(SEARCH($E$3:$E$5,B3))) 與 0 比較:只要公式結果大於 0,即傳回 TRUE,否則傳回 FALSE。此處結果為 TRUE。
第 2 部分:(SUMPRODUCT(--ISNUMBER(SEARCH($F$3:$F$4,B3)))=0) 檢查儲存格是否不包含 F3:F4 中的值
公式 SEARCH($F$3:$F$4,B3) 會在 B3 儲存格中逐一搜尋 $F$3:$F$4 範圍內的每個值,並傳回各文字字串在 B3 儲存格中的位置。它會傳回如下陣列結果:{#VALUE!;#VALUE!}。
ISNUMBER(SEARCH($F$3:$F$4,B3)) 會傳回陣列結果 {false;false},因為 SEARCH 函數未找到任何相符項目。
--ISNUMBER(SEARCH($F$3:$F$4,B3)) 會將 TRUE 值轉換為 1,FALSE 值轉換為 0,因此此公式會將陣列結果轉換為 {0;0}。
SUMPRODUCT 函數:用於將多個範圍或陣列對應相乘後加總,並傳回乘積的總和。 SUMPRODUCT(--ISNUMBER(SEARCH($F$3:$F$4,B3))) 傳回 0+0=0.
最後,將左側公式 SUMPRODUCT(--ISNUMBER(SEARCH($F$3:$F$4,B3))) 與 0 比較:只要該公式結果等於 0,即傳回 TRUE,否則傳回 FALSE。此處結果為 TRUE。
第 3 部分:將兩個公式相乘
=(SUMPRODUCT(--ISNUMBER(SEARCH($E$3:$E$5,B3)))>0)*(SUMPRODUCT(--ISNUMBER(SEARCH($F$3:$F$4,B3)))=0)
=TRUE*TRUE
=1
在此公式中,1 與 0 會被視為邏輯值 TRUE 與 FALSE 來處理。
範例檔案
相關公式
- 檢查儲存格是否包含特定文字
若要檢查儲存格是否包含範圍 A 中的文字,卻不包含範圍 B 中的文字,可使用 Excel 中結合 COUNT、SEARCH 與 AND 函數的陣列公式,輕鬆達成條件篩選! - 檢查儲存格是否包含多個值其中之一
本教學提供一個實用公式,可快速檢查儲存格是否包含 Excel 中指定的多個值之一,並詳細說明公式參數與運作原理! - 檢查儲存格是否包含某些值其中之一
假設在 Excel 中,E 欄有一份值清單,您想檢查 B 欄的儲存格是否包含 E 欄中的任一值,並傳回 TRUE 或 FALSE。 - 檢查儲存格是否包含數字
有時您需要確認儲存格是否含有數字字元。本教學提供一個實用公式:當儲存格包含數字時傳回 TRUE,否則傳回 FALSE。
最佳 Office 生產力工具
Kutools for Excel -助您脫穎而出
| 🤖 | KUTOOLS AI 助手:以以下方式革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、標示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 超級 VLookup:多重條件 | 多重值 | 跨多個工作表 | 模糊查找…… | |
| 進階下拉列表:簡易下拉式清單 | 相依下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位 | 移動欄位 | 切換隱藏欄位的可見狀態 |比較欄位以選擇相同/不同單元格…… | |
| 精選功能:網格聚焦 | 設計視圖 | 增強編輯欄 | 工作簿與工作表管理員|資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符……)| 50+ 圖表 類型(甘特圖……)| 40+ 實用公式(基於生日計算年齡……)| 19 插入工具(插入二維碼,從路徑插入圖片……)| 12 轉換工具(金額轉大寫,匯率轉換……)| 7 合併和拆分工具(高級合併行,拆分 Excel 儲存格……)|……還有更多 |
Kutools for Excel 擁有超過 300 項功能,確保您所需的功能僅需一鍵即可取得……
Office Tab -在 Microsoft Office(包含 Excel)中啟用分頁式閱讀與編輯
- 一秒內在數十份開啟的文件間快速切換!
- 每天為您減少數百次滑鼠點擊,遠離滑鼠手困擾。
- 在檢視與編輯多份文件時,讓您的生產力提升高達 50%。
- 為 Office(包含 Excel)帶來如 Chrome、Edge 與 Firefox 般的高效能分頁體驗。