INDEX関数

Excel 2007+

概要

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で入力)。

よくある質問

配列形式は値自体を返し、参照形式はセル参照を返します。VLOOKUPなどで使う場合は参照形式が適しています。

0を指定すると、その行または列全体が配列として返されます。配列数式として入力する必要があります。

指定した行番号・列番号が範囲外の場合に発生します。範囲内の正しい位置番号を指定してください。

はい。INDEX+MATCHの組み合わせはVLOOKUPより柔軟で高速、左右両方向の検索が可能です。

一般的なエラーと解決策

#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+