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 在名單中嗎? |
下圖顯示結果。
範例 2
一次檢查數個值。 因為第二個引數是陣列,所以 HAS 會針對每個值傳回一個結果,其形狀與您搜尋的值相同。
| 資料 | ||
|---|---|---|
| 1 | 2 | 3 |
在第二個公式下方保留兩個空白儲存格,讓結果溢出。
| 公式 | 描述 |
|---|---|
| =HAS (A2:C2,{{2,5}}) | 傳回包含巢狀陣列 {TRUE,FALSE} 的單一儲存格 |
| =HAS (A2:C2,{2;5;3}) | 傳回 TRUE、FALSE、TRUE 溢出三個儲存格 — 每個值一個結果 |
下圖顯示結果。
範例 3
在巢狀陣列內搜尋。 複製整個表格,並將其貼到新工作表的儲存格 A1。 A2 中的公式會將巢狀陣列儲存在單一儲存格中。
| 資料 | |
|---|---|
| ={{{1,2};{3,4}}} | |
| 公式 | 描述 |
| =HAS (A2,3) | 傳回 TRUE。 HAS 搜索每一層,所以裡面有 3 個 {3,4} |
| =HAS (A2,5) | 傳回 FALSE。 巢狀陣列的任何層次都不包含 5 |
下圖顯示結果。