跳轉到

HAS

類別: MS Excel 相容函數 · 原生導入: Microsoft 365 (2026 新增)

若值出現在清單或陣列(清單文字、範圍或陣列常數)的任意位置則傳回 TRUE。

語法

=HAS(陣列, 值)

引數

引數 必要 說明
陣列 必要 要搜尋的清單文字、範圍或陣列
值 必要 要尋找的值(整項比對,不區分大小寫)

傳回

傳回 TRUE/FALSE(純量);值指定為陣列時逐元素計算並溢出。陣列引數本身是錯誤時直接傳回該錯誤;省略值時傳回 #VALUE!。

範例

公式 結果 說明
=HAS("Mon, Tue, Wed","tue") TRUE 整項比對,不區分大小寫
=HAS("Ann, Bob","An") FALSE 不是部分比對
=HAS("{""a"",{""b"",""c""}}","c") TRUE 巢狀陣列文字
=HAS("1, 2","1") FALSE 文字 "1" ≠ 數字 1

備註

  • 陣列引數可接受清單文字(Mon, Tue, Wed 或 {"a",{"b","c"}} 這樣的陣列常數形式)、範圍與陣列常數,並遞迴搜尋到巢狀內部。逗號分隔清單或 {…} 內的各項:數字形狀讀為數字,TRUE/FALSE 讀為邏輯值,#N/A 等錯誤名稱讀為錯誤;但沒有逗號與大括號的單一文字不做分類,原樣作為 1 個文字項目(一般儲存格的 "1" 就是文字 "1")。引號未閉合等無法解析時不會報錯,整體視為 1 個項目。
  • 比對規則:文字為不區分大小寫的整項比對("Ann"≠"Anna"),數字依數值相等,文字 "1" 與數字 1 不同。清單中的錯誤項目不與任何值相符。陣列引數不做提升 — 指定範圍時整個範圍就是一個陣列,逐列結果請使用表格的 [@欄] 參照或 BYROW。
  • Microsoft 365 測試版的儲存格內清單在舊版 Excel 中只顯示為 #UNKNOWN!(Excel 2016 為 #VALUE!),請先以功能區 [EGTools] › [清單/陣列儲存格 → 文字] 轉換後再使用。相關函數:HASANY、HASALL、FLATTEN
  • 支援: Excel 2010+。在沒有原生函數的舊版 Excel 中以 HAS 原名註冊(可直接替換),在已內建原生函數的新版 Excel 中則註冊為 EG.HAS。