INDEX関数の使い方|行と列の番号を指定して値を取り出す
※写真はイメージです
書き方
=INDEX(配列, 行番号, [列番号])表の「上から何行目・左から何列目」を指定して、そのセルの値を取り出します。単体で使うことは少なくて、ほとんどはMATCHと組み合わせて、VLOOKUPではできない「左の列を取り出す」ために使います。
この図の表をExcelファイルでダウンロード(問題と答えのシートつき)
引数の意味
| 引数 | 入れるもの | 図の例 |
|---|---|---|
| 配列 | 取り出したい表の範囲 | A2:C5 |
| 行番号 | 範囲の上から何行目か | 3 |
| 列番号 省略できる | 範囲の左から何列目か。1列だけの範囲なら省略 | 2 |
行番号・列番号は、シートの行番号ではなく指定した範囲の中で数えます。A2:C5 の1行目は、シートでは2行目です。
MATCHと組み合わせて「名前から値を探す」
この形なら、探す列が取り出す列より右にあってもかまいません。VLOOKUPとのちがいや使い分けは、INDEXとMATCHの組み合わせのページにまとめています。
うまくいかないとき
1#REF! になる
行番号・列番号が範囲の大きさを超えています(4行しかないのに5を指定など)。
直し方範囲の行数・列数を見直します。MATCHと組み合わせているなら、MATCHの範囲とINDEXの範囲の行をそろえます。
2ちがう値が出る
行番号をシートの行番号で数えています。
直し方範囲の1行目を「1」として数えます。
使えるバージョン
すべてのExcelとGoogleスプレッドシートで使えます。
サンプルファイルで試す
「問題」のシートの黄色いセルに式を入れて、「答え」のシートと比べてください。
よくある質問
INDEXとVLOOKUPはどちらを使えばいいですか?
ふつうの表引きならVLOOKUP(365ならXLOOKUP)が簡単です。探す列より左の値を取り出したいときや、列の入れ替えに強くしたいときにINDEX+MATCHを使います。
行番号に0を入れるとどうなりますか?
列全体(列番号に0なら行全体)を返します。SUM(INDEX(…,0,2)) のように、ほかの関数と組み合わせて使います。
一緒に覚えたい関数・操作
このページについて
操作の説明は Microsoft 365 の日本語版Excel(Windows)に合わせています。図はこのサイトで作ったもので、表の会社名・商品名・人名は架空です。運営者情報