「Excelの関数って難しそう…」
「INDEX関数って名前は聞いたことがあるけど、どんなときに使うの?」
そんな疑問をお持ちの方に向けて、Excel INDEX関数の使い方を、初心者の方にもわかりやすく説明します。
この記事を読めば、INDEX関数の基本から実際の使い方まで、しっかり理解できるようになります。
INDEX関数ってなに?

機能の説明
INDEX関数は、表の中から指定した位置にあるデータを取り出す関数です。
本棚を例に考えてみましょう。「上から3段目、左から2番目の本を取って」と言われたら、その位置にある本を取りますよね。
INDEX関数も同じで、「何行目、何列目」を指定すると、その位置にあるデータを取り出してくれます。
INDEX関数の特徴
- 表の中から特定の位置のデータを取り出せる
- 行番号と列番号を指定するだけで使える
- 大きな表からピンポイントでデータを抜き出せる
こんなときに便利
社員名簿から情報を探すとき 「田中さんの電話番号を知りたい」というとき
成績表から点数を確認するとき 「数学の3番目の人の点数は?」というとき
商品リストから価格を調べるとき 「商品コードXYZの値段はいくら?」というとき
INDEX関数の基本的な書き方
構文の説明
INDEX関数は、次のように書きます:
=INDEX(範囲, 行番号, 列番号)
それぞれの意味
- 範囲:データが入っている表の部分
- 行番号:上から何番目の行かを指定
- 列番号:左から何番目の列かを指定
列番号は省略できる 表が1列だけの場合は、列番号を書かなくても大丈夫です。
実際に使ってみよう
例1:社員名簿から名前を取り出す
説明 次のような社員名簿があるとします:
A | B | C |
---|---|---|
田中 | 営業部 | 内線123 |
佐藤 | 経理部 | 内線456 |
山田 | 総務部 | 内線789 |
この表から、2行目1列目(佐藤)を取り出してみましょう。
数式例
=INDEX(A1:C3, 2, 1)
実行結果
佐藤
解説
A1:C3
:データが入っている範囲2
:上から2番目の行1
:左から1番目の列
例2:成績表から点数を取り出す
説明 次のような成績表があるとします:
A | B |
---|---|
田中 | 85 |
佐藤 | 92 |
山田 | 78 |
この表から、3番目の人の点数(78)を取り出してみましょう。
数式例
=INDEX(B1:B3, 3)
実行結果
78
解説
B1:B3
:点数が入っている範囲(1列だけ)3
:上から3番目の行- 列番号は省略(1列しかないため)
MATCH関数と組み合わせてもっと便利に

MATCH関数とは
MATCH関数は、指定したデータが何番目にあるかを教えてくれる関数です。
図書館で本を探すとき、「この本は何番目の棚にありますか?」と聞くようなものです。
MATCH関数の書き方
=MATCH(探したいデータ, 探す範囲, 0)
最後の0
は「完全に一致するもの」という意味です。
INDEX関数とMATCH関数を組み合わせる
例:名前から点数を調べる
説明 次のような成績表で、「山田」の点数を調べたいとします:
A | B |
---|---|
田中 | 85 |
佐藤 | 92 |
山田 | 78 |
鈴木 | 88 |
数式例
=INDEX(B1:B4, MATCH("山田", A1:A4, 0))
実行結果
78
解説
MATCH("山田", A1:A4, 0)
で「山田」が何番目にあるかを調べる → 3番目INDEX(B1:B4, 3)
で点数の3番目を取り出す → 78
これで、名前を指定するだけで自動的に点数がわかるようになります。
よくあるエラーと解決方法
#REF! エラー
原因 指定した行番号や列番号が、範囲の外になっている
例
=INDEX(A1:C3, 5, 1) // 5行目は存在しない
解決方法
- 行番号・列番号が範囲内かを確認する
- 範囲を広げるか、番号を正しく修正する
#N/A エラー
原因 MATCH関数で探しているデータが見つからない
例
=INDEX(B1:B4, MATCH("高橋", A1:A4, 0)) // 「高橋」が名簿にない
解決方法
- 探しているデータが正しく入力されているか確認
- 大文字・小文字、全角・半角の違いもチェック
- IFERROR関数で「データなし」と表示させる
エラー対策の例
=IFERROR(INDEX(B1:B4, MATCH("高橋", A1:A4, 0)), "データなし")
実際の職場でよく使う例

例1:商品検索システム
説明 商品コードを入力すると、商品名と価格が自動表示されるシステム
表の例
A | B | C |
---|---|---|
P001 | りんご | 150 |
P002 | みかん | 120 |
P003 | ぶどう | 300 |
使用する数式
// 商品名を表示
=INDEX(B1:B3, MATCH(E1, A1:A3, 0))
// 価格を表示
=INDEX(C1:C3, MATCH(E1, A1:A3, 0))
E1セルに商品コード(P002など)を入力すると、自動的に商品名と価格が表示されます。
例2:社員情報検索
説明 社員名を入力すると、部署と内線番号が自動表示されるシステム
表の例
A | B | C |
---|---|---|
田中 | 営業部 | 内線123 |
佐藤 | 経理部 | 内線456 |
山田 | 総務部 | 内線789 |
使用する数式
// 部署を表示
=INDEX(B1:B3, MATCH(E1, A1:A3, 0))
// 内線番号を表示
=INDEX(C1:C3, MATCH(E1, A1:A3, 0))
例3:月別売上検索
説明 月を指定すると、その月の売上が自動表示されるシステム
表の例
A | B |
---|---|
1月 | 1200000 |
2月 | 1350000 |
3月 | 1180000 |
使用する数式
=INDEX(B1:B3, MATCH(E1&"月", A1:A3, 0))
E1セルに数字(1、2、3など)を入力すると、その月の売上が表示されます。
練習問題にチャレンジ

理解を深めるために、簡単な練習をしてみましょう。
問題1
次の表で、3行目2列目の値を取り出すINDEX関数を書いてください。
A | B | C |
---|---|---|
商品A | 100 | 在庫あり |
商品B | 200 | 在庫なし |
商品C | 150 | 在庫あり |
答え
=INDEX(A1:C3, 3, 2)
// 結果:150
問題2
上の表で、「商品B」の在庫状況を調べるINDEX関数とMATCH関数の組み合わせを書いてください。
答え
=INDEX(C1:C3, MATCH("商品B", A1:A3, 0))
// 結果:在庫なし
よくある質問と答え
Q. INDEX関数とVLOOKUP関数の違いは何ですか?
A. VLOOKUP関数は左の列から右の列を検索しますが、INDEX+MATCH関数は任意の方向で検索できます。また、INDEX+MATCH関数の方が処理速度が速いことが多いです。
Q. 範囲が変わったとき、数式も変更する必要がありますか?
A. データが追加される可能性がある場合は、範囲を広めに取っておくか、テーブル機能を使うと自動的に範囲が拡張されます。
Q. 複数の条件で検索することはできますか?
A. はい。配列数式や他の関数と組み合わせることで、複数条件での検索も可能です。
まとめ:INDEX関数でExcelをもっと便利に
INDEX関数を使えば、大きな表からピンポイントでデータを取り出せるようになります。
ポイントおさらい:
- 基本構文:
=INDEX(範囲, 行番号, 列番号)
- MATCH関数との組み合わせ:名前などで検索できる
- エラー対策:IFERROR関数で「データなし」表示
- 実務活用:商品検索、社員情報検索など
コメント