複数の配列を使用した INDEX および MATCH
下図のように、同じ見出しを持つ複数の表がある場合、これらの表から指定された条件に一致する値の範囲を検索するのは難しい作業かもしれません。このチュートリアルでは、INDEX、MATCH、およびCHOOSE 関数を組み合わせて、複数の配列、範囲、またはグループの中から特定の条件に一致する値を効率的に検索する方法を解説します。

複数の配列間で値を検索する方法は?
異なる部署に属するさまざまなグループのリーダーを知るには、まず CHOOSE 関数でリーダー名を取得する対象の表を指定します。次に MATCH 関数が、そのリーダーが所属する表内での位置を特定します。最後に INDEX 関数が、この位置情報とリーダー名が記載されている列をもとに、正確にリーダーを取得します。
一般的な構文
=INDEX(CHOOSE())array_num,array1 ,array2 ,…),MATCH(lookup_value,lookup_array,0),column_num)
- array_num:CHOOSE 関数がリスト内のどの配列を使用するかを指定する数値。array1、array2、… 結果を取得する対象となる配列。
- array1、array2、…: 結果を取得する対象となる配列です。ここでは3 つの表を指します。
- lookup_value:組み合わせた数式で対応するリーダーの位置を検索するために使用する値です。ここでは、指定されたグループを指します。
- lookup_array:lookup_valueがリストされているセル範囲。ここではグループの範囲を指します。注:どの部署のグループ範囲を使っても問題ありません。すべて同じ内容になっており、位置番号さえ取得できればよいからです。
- column_num:データを取得する列を指定します。
部署 A に属するグループ D のリーダーを知るには、以下の数式をセル G5 にコピーまたは入力し、Enterキーを押して、結果を取得してください。
=INDEX(CHOOSE())1,$B$5:$C$8 ,$B$11:$C$14 ,$B$17:$C$20)、MATCH(F5,$B$5:$B$8,0)、2)
√ 注:上記のドル記号($)は絶対参照を示しており、数式を他のセルに移動またはコピーしても、数式内の名前およびクラスの範囲は変更されません。数式を入力後、フィルハンドルを下にドラッグして下のセルにも適用し、それに応じてarray_numを変更してください。

数式の説明
=INDEX()CHOOSE(1,$B$5:$C$8,$B$11:$C$14,$B$17:$C$20),MATCH(F5,$B$5:$B$8,0),2)
- CHOOSE(1、$B$5:$C$8、$B$11:$C$14、$B$17:$C$20):CHOOSE 関数は、数式に指定された3 つの配列のうち、1 番目の配列を返します。つまり、$B$5:$C$8(データ範囲(部署 A))が返されるということです。
- MATCH(F5、$B$5:$B$8,0):match_type 0により、MATCH 関数はGroup D(セル)F5の値)と最初に一致する位置を範囲 $B$5:$B$8 内で検索し、その位置()4)を返します。
- INDEX()CHOOSE(1、$B$5:$C$8、$B$11:$C$14、$B$17:$C$20),MATCH(F5、$B$5:$B$8,0),2) = INDEX($B$5:$C$8,4,2INDEX 関数は、範囲 $B$5:$C$8 内の4 行目と2 列目の交差位置から値(この場合は)Emily)を取得します。
数式をコピーするたびにarray_numヘルパー列(列 D)を使えば、変更する手間を省けます。その場合の数式は次のとおりです。
=INDEX(CHOOSE())D5,$B$5:$C$8 ,$B$11:$C$14 ,$B$17:$C$20)、MATCH(F5,$B$5:$B$8,0)、2)
√ 注:ヘルパー列の数値 1、2、3は、それぞれ CHOOSE 関数内のarray1、array2、array3に対応しています。
関連関数
Excel の INDEX 関数は、指定された範囲または配列から、指定位置に基づいて値を返します。
Excel の MATCH 関数は、指定されたセル範囲内で特定の値を検索し、その値が範囲内で占める相対位置を返します。
CHOOSE 関数は、指定されたインデックス番号に基づいて、値のリストから対応する値を返します。たとえば、CHOOSE(3, 「Apple」, 「Peach」, 「Orange」) は「Orange」を返します。このとき、インデックス番号は3 で、「Orange」は関数内で3 番目の値です。
関連する数式
ワークシート内で VLOOKUP 関数を使って値を検索する方法を知っていれば、他のワークシートやワークブックからも VLOOKUP で値を検索するのはそれほど難しくありません。
多くの場合、複数のワークシートにまたがるデータを集計する必要があります。VLOOKUP 関数と INDIRECT 関数を組み合わせれば、動的なシート名を使って複数のワークシート間で特定の値を検索する数式を作成できます。
Excel スプレッドシートで列と行の見出しが多数ある大規模なデータベースを扱う際、複数の条件を満たすデータを検索するのは常に難しい作業です。そんなときは、INDEX 関数と MATCH 関数を組み合わせた配列数式が活用できます。
最高の 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 のような効率的なタブ機能をもたらします。