HASALL 函數可讓您檢查陣列或範圍是否包含您要尋找的每個值。 只有在找到所有值時,才會傳回 TRUE,如果遺漏任何值,則傳回 FALSE。
HASALL 會搜尋巢狀陣列的每一層,因此您可以在儲存於單一儲存格內的陣列上使用它。
語法
HASALL 函數會判斷陣列是否包含所有值。
HASALL 函數的語法為:
HASALL (陣列、值)
| 引數 | 說明 |
|---|---|
|
陣列 (必要) |
要在其中搜尋的陣列或範圍。 搜尋巢狀陣列的每一層。 |
|
值 (必要) |
要檢查的值。 只有在找到所有項目時,HASALL 才會傳回 TRUE。 |
注意
- 無論您搜尋多少值,HASALL 都會傳回單一 TRUE 或 FALSE。 若要每個值取得一個結果,請改用 HAS 函數。 若要檢查是否至少有一個值存在,請使用 HASANY 函數。
- HASALL 會檢查每個值是否存在,而不是檢查它出現的次數。 重複 值 中的值並不需要它在 陣列中出現多次。
- 比較對類型很嚴格。 數字 1 與文字 “1” 不符,且數字 1 不符合 TRUE。 文字比較不區分大小寫,因此 “apple” 會符合 “APPLE”。
- 如果 陣列 為空,HASALL 會傳回 #CALC! 錯誤。
- 如果 值 包含錯誤,則會傳回該錯誤。
範例
複製範例資料,並將其貼到新 Excel 工作表的儲存格 A1 中。 如有需要,您可以調整欄寬來查看所有資料。
範例 1
檢查某個範圍是否包含集合中的所有值。
| 資料 | ||||
|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 |
| 公式 | 問題 |
|---|---|
| =HASALL (A2:E2,{2,4}) | 2 和 4 都在清單中嗎? |
| =HASALL (A2:E2,{2,9}) | 2 和 9 都在清單中嗎? |
| =HASALL (A2:E2,{1,2,3,4,5,6}) | 這六個值是否都在清單中? |
下圖顯示結果。
範例 2
查看 HASALL 如何處理重複值。 它檢查值是否存在,而不是出現的頻率。
| 資料 | |
|---|---|
| 1 | 2 |
| 公式 | 描述 |
|---|---|
| =HASALL (A2:B2,{2,2,2}) | 傳回 TRUE。 值 2 存在,這是所需要的全部 |
| =HASALL (A2:B2,{1,2,3}) | 傳回 FALSE。 遺失值 3 |
下圖顯示結果。
範例 3
在巢狀陣列內搜尋。 儲存格 A1 中的公式 ={{{1,2};{3,4}}} 會將巢狀陣列儲存在單一儲存格中。
| 公式 | 描述 |
|---|---|
| =HASALL (A1,{2,3}) | 傳回 TRUE。 HASALL 會搜索每一層,所以裡面 {1,2} 有 2 個,裡面有 3 個 {3,4} |
| =HASALL (A1,{2,5}) | 傳回 FALSE。 值 5 不會出現在任何層級 |
下圖顯示結果。
範例 4
檢查某列是否已標記為所有必要標籤。 欄 B 中的每一個儲存格都含有一份標籤清單,並以逗號分隔顯示。
貼上資料之後,選取 B2:B3 並按下 Ctrl+J ,將每個儲存格轉換成清單。 在此之前,每個儲存格都含有單一文字片段,而下列公式將找不到個別的標籤。
| 項目 | 標籤 |
|---|---|
| 產品 A | 緊急, 審查, Q1 |
| 產品 B | 緊急,Q1 |
| 公式 | 描述 |
|---|---|
| =HASALL (B2,{“urgent”,“review”}) | 傳回 TRUE。 產品 A 同時具有這兩個標籤 |
| =HASALL (B3,{“urgent”,“review”}) | 傳回 FALSE。 產品 B 未標記評論 |
下圖顯示結果。