HASANY 関数を使用すると、配列または範囲に探している値の 1 つ以上が含まれているかどうかをチェックできます。 値のいずれかが見つかった場合は TRUE を返し、値が見つからない場合は FALSE を返します。
HASANY は、ネストされた配列のすべてのレベルを検索し、1 つのセル内に格納されている配列で使用できます。
構文
HASANY 関数は、配列に任意の値が含まれているかどうかを判別します。
HASANY 関数の構文は次のとおりです。
HASANY(array, values)
| 引数 | 説明 |
|---|---|
|
配列 (必須) |
検索する配列または範囲。 ネストされた配列のすべてのレベルが検索されます。 |
|
値 (必須) |
チェックする値。 それらが見つかった場合、HASANY は TRUE を返します。 |
注
- HASANY は、検索する値の数に関係なく、常に単一の TRUE または FALSE を返します。 値ごとに 1 つの結果を取得するには、代わりに HAS 関数を使用します。 すべての値が存在することを要求するには、HASALL 関数を使用します。
- 比較はタイプに関して厳密です。 数字 1 はテキスト "1" と一致せず、数字 1 は TRUE と一致しません。 テキストの比較では大文字と小文字が区別されないため、"apple" は "APPLE" と一致します。
- 配列が空の場合、HASANY は #CALC! エラーを返します。
- 値にエラーが含まれている場合は、そのエラーが返されます。
使用例
サンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 必要に応じて、列幅を調整してすべてのデータを表示してください。
使用例 1
範囲に複数の値のうち少なくとも 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}}} は、1 つのセル内にネストされた配列を格納します。
| 数式 | 説明 |
|---|---|
| =HASANY(A1,{2,5}) | TRUE を返します。 HASANY はすべてのレベルを検索し、内部に 2 が見つかります {1,2} |
| =HASANY(A1,{5,6}) | FALSE を返します。 どちらの値もどのレベルでも表示されない |
以下の図に、これらの方法を示します。
使用例 3
タグのリストを確認します。 列 B の各セルには、タグの一覧がコンマで区切られて表示されます。
データを貼り付けたら、B2:B4 を選択し、 Ctrl+J キーを押して、各セルをリストに変換します。 入力するまで、各セルには 1 つのテキストが保持され、以下の数式では個々のタグは検索されません。
| 項目 | タグ |
|---|---|
| 製品 A | 緊急、レビュー、Q1 |
| 製品 B | 出荷済み、第 2 四半期 |
| 製品 C | 緊急、Q2 |
| 数式 | 説明 |
|---|---|
| =HASANY(B2,{"緊急","ブロック"}) | TRUE を返します。 商品 A に緊急というタグが付けられている |
| =HASANY(B3,{"緊急","ブロック"}) | FALSE を返します。 製品 B にはどちらのタグもありません |
| =HASANY(B2:B4,"shipped") | TRUE を返します。 3 つのセルはすべて 1 つのコレクションとして検索されます |
注
配列は 1 つずつテストする項目のリストではなく、単一のコレクションであるため、最後の数式は範囲全体を一度に検索します。 行ごとに個別の回答を得るには、1 つのセルに数式を入力し、列の下に入力します。
以下の図に、これらの方法を示します。