HAS 函數

套用到
Microsoft 365 Excel Mac 版 Microsoft 365 Excel

HAS 函數可讓您檢查值是否存在於陣列或範圍中的任何位置。 如果找到該值,則返回 TRUE,如果找不到,則返回 FALSE。

HAS 會搜尋巢狀陣列的每一層,因此您可以在儲存在單一儲存格內的陣列上使用它。

語法

HAS 函數會判斷陣列中是否有值存在。

HAS 函數的語法為:

HAS (陣列、值)

引數 說明
陣列
(必要)
要在其中搜尋的陣列或範圍。 搜尋巢狀陣列的每一層。
數值
(必要)
要搜尋的值或值陣列。

注意

  • 比較對類型很嚴格。 數字 1 與文字 “1” 不符,且數字 1 不符合 TRUE。 如果您需要比較不同類型,請先轉換值,例如使用 VALUE 函數。
  • 文字比較不區分大小寫,因此 “apple” 會符合 “APPLE”。
  • 當 value 為陣列時,HAS 會傳回與 value 具有相同形狀的 TRUE 和 FALSE 結果陣列。 每個值都會自行測試。
  • 如果 陣列 為空,HAS 會傳回 #CALC! 錯誤。
  • 如果 值 包含錯誤,則會傳回該錯誤。
  • 若要使用單一 TRUE 或 FALSE 答案一次檢查數個值,請使用 HASANY 或 HASALL。

範例

複製範例資料,並將其貼到新 Excel 工作表的儲存格 A1 中。 如有需要,您可以調整欄寬來查看所有資料。

範例 1

檢查範圍是否包含特定值。

資料        
10 20 30 40 50
公式 問題
=HAS (A2:E2,30) 清單中有 30 個嗎?
=HAS (A2:E2,99) 99 在名單中嗎?

下圖顯示結果。

搜尋包含 10、20、30、40 和 50 的範圍時,HAS 會針對 30 傳回 TRUE,針對 99 傳回 FALSE

範例 2

一次檢查數個值。 因為第二個引數是陣列,所以 HAS 會針對每個值傳回一個結果,其形狀與您搜尋的值相同。

資料    
1 2 3

在第二個公式下方保留兩個空白儲存格,讓結果溢出。

公式 描述
=HAS (A2:C2,{{2,5}}) 傳回包含巢狀陣列 {TRUE,FALSE} 的單一儲存格
=HAS (A2:C2,{2;5;3}) 傳回 TRUE、FALSE、TRUE 溢出三個儲存格 — 每個值一個結果

下圖顯示結果。

HAS 會在單一巢狀陣列儲存格中傳回 TRUE 和 FALSE,並在三個儲存格中傳回 TRUE、FALSE、TRUE

範例 3

在巢狀陣列內搜尋。 複製整個表格,並將其貼到新工作表的儲存格 A1。 A2 中的公式會將巢狀陣列儲存在單一儲存格中。

資料  
={{{1,2};{3,4}}}
公式 描述
=HAS (A2,3) 傳回 TRUE。 HAS 搜索每一層,所以裡面有 3 個 {3,4}
=HAS (A2,5) 傳回 FALSE。 巢狀陣列的任何層次都不包含 5

下圖顯示結果。

HAS 在巢狀陣列中找到 3,並傳回 TRUE;搜尋 5 則傳回 FALSE