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 個嗎? |
下圖顯示結果。
範例 2
在巢狀陣列內搜尋。 儲存格 A1 中的公式 ={{{1,2};{3,4}}} 會將巢狀陣列儲存在單一儲存格中。
| 公式 | 描述 |
|---|---|
| =HASANY (A1,{2,5}) | 傳回 TRUE。 HASANY 搜索每個級別,因此可以在裡面找到 2 {1,2} |
| =HASANY (A1,{5,6}) | 傳回 FALSE。 這兩個值都不會出現在任何層級 |
下圖顯示結果。
範例 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。 這三個儲存格會當作一個集合來搜尋 |
注意
最後一個公式會一次搜尋整個範圍,因為 陣列 是單一的集合,而不是要逐一測試的項目清單。 若要取得每一列的個別答案,請在一個儲存格中輸入公式,然後向下填入欄。
下圖顯示結果。