セルからリストの最初の値を取得する
特定のセルに複数の値のいずれかが含まれている場合、そのセルから範囲内にリストされている最初のキーワードを取得するには、INDEX、MATCH、ISNUMBER、およびSEARCH 関数を組み合わせたやや複雑な配列数式が必要です。

セルからリストの最初の値を取得するには、どうすればよいですか?
上記のように、セルに含まれるキーワード列と最初に一致した対応するキーワードを取得するには、完全一致ではなく部分一致を行う必要があります。そのためには、ISNUMBER 関数と SEARCH 関数を組み合わせて TRUE/FALSE の配列を作成し、MATCH 関数で最初の TRUE の位置を特定します。その後、その位置番号を INDEX 関数に渡して該当する値を取得します。
一般的な構文
=INDEX()keyword_rng,MATCH(TRUE,ISNUMBER(SEARCH()))keyword_rng,lookup_cell)),0))
√ 注:これは配列数式であるため、入力後にCtrl+Shift+Enterを押す必要があります。
- keyword_rng:キーワードを含むセルの範囲。
- lookup_cell:キーワードを含むかどうかを調べるセル。
セル B5 からキーワードリストで最初に見つかった一致項目を取得するには、以下の数式をセル C5 にコピーまたは入力し、Ctrl+Shift+Enterを押して結果を取得してください:
=INDEX()($E$5:$E$7),MATCH(TRUE,ISNUMBER(SEARCH()))($E$5:$E$7),B5)),0))
√ 注:上記のドル記号($)は絶対参照を示しており、数式を他のセルに移動またはコピーしてもkeyword_rngが変更されないことを意味します。一方、lookup_cellにはドル記号が付加されていないため、この参照は相対的(動的)になります。数式を入力後、フィルハンドルを下にドラッグして下のセルにも適用してください。

数式の説明
=INDEX(($E$5:$E$7,))MATCH(TRUE,)ISNUMBER()SEARCH($E$5:$E$7,B5)),0))
- SEARCH($E$5:$E$7,B5):SEARCH 関数は、範囲 $E$5:$E$7 内でキーワードの位置を数値で返します。見つからない場合は#VALUE!エラーが返されます。その結果は次のような配列になります:{15;11;#VALUE!}。
- ISNUMBER()SEARCH($E$5:$E$7,B5))=ISNUMBER(){15;11;#VALUE!}):ISNUMBER 関数は、配列内の数値を TRUE に、#VALUE!エラーを FALSE に変換します。その結果は次のとおりです:{TRUE;TRUE;FALSE}。
- MATCH(TRUE,)ISNUMBER()SEARCH($E$5:$E$7,B5)),0)=MATCH(TRUE,){TRUE;TRUE;FALSE},0): 引数 match_type 0により、MATCH 関数は完全一致を実行し、配列 {TRUE;TRUE;FALSE}内で最初に見つかる TRUE の位置を返します。そのため、この関数は1を返します。
- INDEX(($E$5:$E$7,))MATCH(TRUE,)ISNUMBER()SEARCH($E$5:$E$7,B5)),0)) = INDEX(($E$5:$E$7,)1):INDEX 関数は、指定された範囲の1 番目の値を返します。この例では、その値は$E$5:$E$7 内のAAAです。
備考
- セルに2 つ以上のキーワードが含まれている場合、この数式はキーワード範囲にリストされた最初のキーワードを返します。
- この数式は大文字と小文字を区別しません。大文字と小文字を区別して一致させたい場合は、SEARCH 関数を FIND 関数に置き換えてください。
- キーワードリストをハードコードされた文字列(例:{“AAA”})の配列定数に置き換えることもできます。これにより、セルにその文字列が含まれているかどうかだけを確認できます。
関連関数
Excel の INDEX 関数は、指定された範囲または配列から値を返します。
Excel の MATCH 関数は、指定したセル範囲内で特定の値を検索し、その相対位置を返します。
Excel では、SEARCH 関数を使って、指定されたテキスト文字列内にある特定の文字や部分文字列の位置を検索できます(下記スクリーンショット参照)。このチュートリアルでは、Excel で SEARCH 関数を活用する方法をご紹介します。
関連数式
キーワードのリストがある場合、特定のセルに含まれる複数の値のうち最初に出現するキーワードを取得するには、INDEX 関数を AGGREGATE 関数および SEARCH 関数と組み合わせて使用します。
Excel で特定の製品、映画、人物などの情報を素早く見つけたいなら、INDEX 関数と MATCH 関数を組み合わせるのが効果的です。
このチュートリアルでは、セルに特定のテキストが含まれているかどうかを確認し、TRUE または FALSE を返す数式をご紹介します(下記のスクリーンショット参照)。また、その数式の引数と動作についても詳しく説明します。
Excel で列 E に値のリストがあり、列 B のセルに列 E のすべての値が含まれているかどうかを確認し、TRUE または FALSE を返したい場合(下記のスクリーンショットを参照)、このチュートリアルで紹介する数式をご利用いただけます。
このチュートリアルでは、Excel でセルに複数の値のいずれかが含まれているかを確認する数式を紹介し、その引数と動作を詳しく解説します。
最高の Office 生産性ツール
Kutools for Excel - あなたを群衆の中から際立たせます
| 🤖 | KUTOOLS AI アシスト:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気機能:検索・ハイライト・重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー VLookup:複数条件 | 複数値 | 複数シート間 | ファジーマッチ... | |
| 高度なドロップダウンリスト:簡単なドロップダウンリスト | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト... | |
| 列マネージャー:指定した数の列を追加 | 列の移動 | 非表示列の表示状態を切り替え |列を比較して同じ/異なるセルを選択... | |
| 注目の機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックとシートマネージャー|リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除...)| 50+チャートタイプ(ガントチャート...)| 40+実用的な数式(誕生日に基づいて年齢を計算します...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入...)| 12 変換ツール(単語に変換する、為替レートの変換...)| 7 結合と分割ツール(高度な行のマージ、Excel セルを分割...)|。。。他にも多数 |
Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…
Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします
- 数十もの開いているドキュメントを1 秒で切り替えられます!
- 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
- 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
- Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。