コンテンツにスキップ

HAS

種類: MS Excel 互換関数 · ネイティブ導入: Microsoft 365 (2026 新規)

リスト・配列(リストテキスト、範囲、配列定数)のどこかに値があれば TRUE を返します。

構文

=HAS(配列, 値)

引数

引数 必須 説明
配列 必須 検索するリストテキスト・範囲・配列
値 必須 探す値(項目全体一致、大文字小文字無視)

戻り値

TRUE/FALSE(スカラー)を返し、値に配列を指定すると要素ごとに計算されてスピルします。配列引数自体がエラーの場合はそのエラーをそのまま返し、値を省略すると #VALUE! を返します。

例

数式 結果 説明
=HAS("Mon, Tue, Wed","tue") TRUE 項目全体一致・大文字小文字無視
=HAS("Ann, Bob","An") FALSE 部分一致ではない
=HAS("{""a"",{""b"",""c""}}","c") TRUE 入れ子の配列テキスト
=HAS("1, 2","1") FALSE テキスト "1" ≠ 数値 1

解説

  • 配列引数はリストテキスト(Mon, Tue, Wed や {"a",{"b","c"}} のような配列定数形式)、範囲、配列定数をすべて受け取り、入れ子の内側まで再帰的に検索します。カンマ区切りリストや {…} 内の項目は、数値の形なら数値、TRUE/FALSE なら論理値、#N/A などのエラー名ならエラーとして読み取られますが、カンマも中かっこもない単一のテキストは分類せずテキストのまま項目 1 個になります(通常セルの "1" はテキスト "1")。引用符が閉じていないなど解析できない場合はエラーを出さずに全体を項目 1 個として扱います。
  • 比較はテキストは大文字小文字を無視した項目全体一致("Ann"≠"Anna")、数値は数値としての同等で、テキスト "1" と数値 1 は異なります。リスト内のエラー項目はどの値とも一致しません。配列引数はリフティングしません — 範囲を指定すると範囲全体が 1 つの配列になるため、行ごとの結果はテーブルの [@列] 参照か BYROW で求めます。
  • Microsoft 365 ベータのセル内リストは旧バージョンの Excel では #UNKNOWN!(Excel 2016 では #VALUE!)としか表示されないため、先にリボン [EGTools] › [リスト/配列セル → テキスト] で変換してから使います。関連関数: HASANY, HASALL, FLATTEN
  • 対応: Excel 2010+。ネイティブ関数がない旧バージョンでは HAS の名前のまま(ドロップイン)、ネイティブ関数がある新しい Excel では EG.HAS として登録されます。