ラベルラベル

検索・参照入門

INDEX関数を見て理解する

指定した範囲の中から、行番号と列番号に対応するセルの値を取り出す関数です。

3つのポイント

  1. 値を取り出す表の範囲を指定する
  2. 表の中の行番号と列番号を選ぶ
  3. 交点にあるセルの値を返す
例題

行番号と列番号で表から値を取り出す

サンプル数式

  • 取り出す範囲
  • 行番号
  • 列番号

いまの結果:

95
計算結果
結果セル:H2
入力・条件:3項目
  • 取り出す範囲B2:D5
  • 行番号F2:2
  • 列番号G2:3
この結果になる理由

D3の95をH2に表示します。

サンプルデータ

範囲や行・列番号を変えてみよう

※ Excel と Google スプレッドシートで結果や挙動が異なる場合、Excel の仕様を基準にしています。

「行番号と列番号で表から値を取り出す」のサンプルデータ。引数番号は正式引数と教材要素の対応、小さな角丸数字は処理順を表します。
ABCDEFGH
1 商品数量単価 行番号列番号結果
2 りんご12120 95
3 みかん795    
4 ぶどう4300    
5 バナナ280    
取り出す範囲行番号列番号結果セル
①・②・③ 正式引数 / 教材要素1–4 処理の流れ

F2、G2に値を入力すると、結果と処理順が変わります。

3つの引数

色付きの丸数字は、サンプル数式と引数ガイドで同じ引数を示しています。表にも同じ番号があれば、その引数で指定しているセルを示します。

  1. B2:D5表のセル: B2:D5

    表で選んだ範囲の左上を1行目・1列目として数えます。B2:D5の内側で範囲を選べます。

  2. F2表のセル: F2

    範囲内で上から何行目の値を取り出すかを指定します。

  3. G2表のセル: G2

    範囲内で左から何列目の値を取り出すかを指定します。

この数式を日本語にすると

選んだ範囲の中から、行番号・列番号に対応する値をH2から表示します。0を指定すると行全体・列全体・範囲全体を取り出せます。

この説明は、最初に表示されているサンプルデータをもとにしています。入力値を変更しても説明文は変わりません。

処理の流れ

手順1〜4を順番に確認しましょう。表内の小さな角丸数字は、対応する手順を示します。

  1. 取り出す範囲を確認する

    B2:D5

    B2:D5を参照範囲として使います。

  2. 行番号を確認する

    F2

    行番号は2です。

  3. 列番号を確認する

    G2

    列番号は3です。

  4. 値を取り出す

    D3H2

    D3の95をH2に表示します。

対応アプリ

  • Excel
  • Google スプレッドシート

関数自体が対応するアプリです。教材例の数式や再計算が、両アプリで同じように動くことを保証するものではありません。

この例の注意点

  • 行番号・列番号は指定範囲の左上を1行目・1列目として数えます。シート全体の行番号・列番号とは異なります。
  • 行番号を0にすると列全体、列番号を0にすると行全体、両方を0にすると選択範囲全体をH2から表示します。
  • 参照範囲の行数・列数を超える番号は#REF!、文字列など不正な番号は#VALUE!となる場合があります。
  • ExcelのINDEXには配列形式と参照形式があります。この教材では配列形式の矩形範囲と0による配列返却を扱い、複数参照領域・area_numは体験対象外です。
  • 教材の計算はExcel 2021基準です。Google スプレッドシートでは引数省略や数値文字列、エラー種別に実測差があります。

一般構文

対応:Excel / Google スプレッドシート ・ 構文:構文差あり

  • Excelは配列形式と参照形式(最大4引数)、Google スプレッドシートはreference・row・columnの3引数構文です。
  • Excel 2021では行番号と列番号を両方省略した数式を入力確定できませんが、Sheetsでは両方省略でき、省略時は0です。
  • =INDEX(A1:C3)はExcel 2021では数式入力が拒否され、Sheetsでは範囲全体を返します。明示的な(0,0)は両方とも全範囲を返します。
  • 直接指定の全角数値文字列はExcel 2021で数値化できてもSheetsで#VALUE!になるケースがあります。
  • 直接空文字列("")はExcel 2021で#VALUE!、Sheetsでは0相当として配列返却される実測差があります。
  • 負の行・列番号や範囲外では、Excel 2021とSheetsで#VALUE!・#REF!・#NUM!などのエラー種別が異なる実測例があります。

配列形式・Excel

=INDEX(array, row_num, [column_num])

[] は省略できる引数です。

省略時

row_num
条件付き省略単一行または列番号を指定する場合には行番号を省略できることがあります。複数行・列の省略による配列返却はこの教材の対象外です。
column_num
条件付き省略単一列では列番号を省略できます。この教材では行番号・列番号を両方指定します。

参照形式・Excel

=INDEX(reference, row_num, [column_num], [area_num])

[] は省略できる引数です。

省略時

row_num
条件付き省略単一行なら列番号で位置を指定でき、複数行列を省略すると範囲全体を返す場合があります。
column_num
条件付き省略単一列なら列番号を省略できます。
area_num
→ 1省略すると1番目の参照領域を使います。

Google スプレッドシート

=INDEX(reference, [row], [column])

[] は省略できる引数です。

省略時

row
→ 0省略時は0です。列番号を指定するとその列の全行を返し、両方省略すると範囲全体を返します。
column
→ 0省略時は0です。行番号を指定するとその行の全列を返し、両方省略すると範囲全体を返します。
公式資料・確認範囲

公式資料

実機確認

  • Excel 2021 / Google スプレッドシート省略時の扱い・計算結果・入力の扱い・エラー・配列展開を確認済み

次に学ぶ関数

OFFSET

INDEXで範囲内の位置を学んだら、OFFSETで基準範囲から参照先を移動する方法を学びましょう。

次に学ぶ