クイックナビゲーション
INDEX関数
概要
INDEX関数は、指定したテーブルやセル範囲内の特定の位置にある値またはセル参照を返す多機能な関数です。配列形式と参照形式の2つの使い方ができ、VLOOKUPやMATCHと組み合わせて強力な検索機能を実現します。
構文
INDEX(配列, 行番号, [列番号]) または INDEX(参照, 行番号, [列番号], [領域番号])
パラメータ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
| 配列/参照 | 範囲 |
はい | 値を返す対象となるセル範囲または配列定数を指定します。配列形式では配列定数、参照形式ではセル参照を使用します。 |
| 行番号 | 数値 |
はい | 範囲内で値を返す行の位置を数値で指定します。1が最初の行です。 |
| 列番号 | 数値 |
いいえ | 範囲内で値を返す列の位置を数値で指定します。1が最初の列です。省略時は1列目。 |
| 領域番号 | 数値 |
いいえ | 複数の非連続範囲から特定の領域を選択します。省略時は1番目の領域を使用します。 |
INDEX関数の使用
INDEX関数は指定位置の値を直接取得できるため、VLOOKUPの柔軟性を超える検索を実現します。MATCH関数と組み合わせることで、検索値に基づいた完全な動的検索が可能になります。配列数式としても使用でき、大規模データ処理に最適です。
INDEXの一般的な例
基本的な値の取得
=INDEX(A2:B3,2,2)
A2:B3範囲の2行目2列目(B3セル)の値を返します。結果:ナシ
MATCHとの組み合わせ
=INDEX(A2:A10,MATCH("バナナ",B2:B10,0))
B列で「バナナ」を検索し、A列の対応する値を返します。
複数領域からの選択
=INDEX((A1:C6,A8:C11),2,2,2)
2番目の領域(A8:C11)から2行目2列目の値を返します。
行全体の取得(配列数式)
{=INDEX(A1:C10,2,0)}
2行目全体を配列として返します(Ctrl+Shift+Enterで入力)。
よくある質問
一般的なエラーと解決策
#REF! エラー
Cause: 行番号または列番号が指定範囲を超えている
Solution: 範囲内の正しい行番号・列番号(1から開始)を指定してください
#VALUE! エラー
Cause: 領域番号で指定した範囲が異なるシートにある、または引数の型が不正
Solution: 同一シート内の範囲のみ指定し、数値引数を確認してください
予期しない配列結果
Cause: 行番号または列番号を0にして配列数式として入力していない
Solution: 配列数式の場合はCtrl+Shift+Enter、またはMicrosoft 365の動的配列を使用
注記
- Excel 2007以降で利用可能。非常に高い人気度(評価9/10)
- VLOOKUP/HLOOKUPの代替としてMATCH関数とセットで使用するのが最適
- 0を指定すると配列全体を返す(配列数式が必要)
- 非連続範囲は()で括り、領域番号で選択
- Microsoft 365では動的配列に対応し、より簡単に使用可能
互換性
利用可能: Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel 2021, Microsoft 365
利用不可:
コンテンツ最終レビュー: December 9, 2025
更新頻度: 必要に応じて
テスト済みExcelバージョン: Excel 2007+