HASANY 関数

適用先
Excel for Microsoft 365 Excel for Microsoft 365 for Mac

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個は入っていますか?

以下の図に、これらの方法を示します。

HASANY を使用して、範囲に複数の値のうち少なくとも 1 つが含まれているかどうかをチェックする

使用例 2

ネストされた配列内を検索します。 セル A1 の数式 ={{{1,2};{3,4}}} は、1 つのセル内にネストされた配列を格納します。

数式 説明
=HASANY(A1,{2,5}) TRUE を返します。 HASANY はすべてのレベルを検索し、内部に 2 が見つかります {1,2}
=HASANY(A1,{5,6}) FALSE を返します。 どちらの値もどのレベルでも表示されない

以下の図に、これらの方法を示します。

HASANY を使用して、1 つのセルに格納されているネストされた配列内を検索する

使用例 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 つのセルに数式を入力し、列の下に入力します。

以下の図に、これらの方法を示します。

HASANY を使用して、入れ子になったタグの配列を含むセルに選択したタグのいずれかが含まれているかどうかをチェックする