HASANY 函數

套用到
Microsoft 365 Excel Mac 版 Microsoft 365 Excel

HASANY 函數可讓您檢查陣列或範圍是否至少包含您要尋找的值之一。 如果找到任何值,則返回 TRUE,如果找不到任何值,則返回 FALSE。

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

語法

HASANY 函數會判斷陣列是否包含任何值。

HASANY 函數的語法為:

HASANY (陣列、值)

引數 說明
陣列
(必要)
要在其中搜尋的陣列或範圍。 搜尋巢狀陣列的每一層。
值
(必要)
要檢查的值。 如果找到任何一項,HASANY 會傳回 TRUE。

注意

  • 無論您搜尋多少值,HASANY 都會傳回單一 TRUE 或 FALSE。 若要每個值取得一個結果,請改用 HAS 函數。 若要要求每個值都存在,請使用 HASALL 函數。
  • 比較對類型很嚴格。 數字 1 與文字 “1” 不符,且數字 1 不符合 TRUE。 文字比較不區分大小寫,因此 “apple” 會符合 “APPLE”。
  • 如果 陣列 為空,HASANY 會傳回 #CALC! 錯誤。
  • 如果 值 包含錯誤,則會傳回該錯誤。

範例

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

範例 1

檢查一個範圍是否至少包含數個值中的一個。

資料        
10 20 30 40 50
公式 問題
=HASANY (A2:E2,{20,99}) 清單中是 20 還是 99?
=HASANY (A2:E2,{7,8,9}) 清單中是 7、8 還是 9?
=HASANY (A2:E2,30) 清單中有 30 個嗎?

下圖顯示結果。

使用 HASANY 檢查範圍是否至少包含數個值中的一個

範例 2

在巢狀陣列內搜尋。 儲存格 A1 中的公式 ={{{1,2};{3,4}}} 會將巢狀陣列儲存在單一儲存格中。

公式 描述
=HASANY (A1,{2,5}) 傳回 TRUE。 HASANY 搜索每個級別,因此可以在裡面找到 2 {1,2}
=HASANY (A1,{5,6}) 傳回 FALSE。 這兩個值都不會出現在任何層級

下圖顯示結果。

使用 HASANY 在儲存於單一儲存格中的巢狀陣列內進行搜尋

範例 3

檢查標記清單。 欄 B 中的每一個儲存格都含有一份標籤清單,並以逗號分隔顯示。

貼上資料之後,選取 B2:B4 並按下 Ctrl+J ,將每個儲存格轉換成清單。 在此之前,每個儲存格都含有單一文字片段,而下列公式將找不到個別的標籤。

項目 標籤
產品 A 緊急, 審查, Q1
產品 B 已出貨,第 2 季
產品 C 緊急,Q2
公式 描述
=HASANY (B2,{“urgent”,“blocked”}) 傳回 TRUE。 產品 A 被標記為緊急
=HASANY (B3,{“urgent”,“blocked”}) 傳回 FALSE。 產品 B 沒有任何標籤
=HASANY (B2:B4,“shipped”) 傳回 TRUE。 這三個儲存格會當作一個集合來搜尋

注意

最後一個公式會一次搜尋整個範圍,因為 陣列 是單一的集合,而不是要逐一測試的項目清單。 若要取得每一列的個別答案,請在一個儲存格中輸入公式,然後向下填入欄。

下圖顯示結果。

使用 HASANY 檢查包含標籤巢狀陣列的儲存格是否包含任何所選標籤