【Excel・エクセル】INDEX関数とは?使い方を分かりやすく紹介!


この範囲の、4行3列目の値を取得できないかな。

INDEX関数を使えば、できるんよ。
- 1つの範囲の値を取得するなら「=INDEX(配列,行番号,列番号)」
- 複数範囲の値を取得するなら「=INDEX((参照1,参照2……),行番号,列番号,領域番号)」
- MATCH関数などと組み合わせて使うことが多い
【Excel・エクセル】INDEX関数とは?分かりやすく
INDEX関数とは、行番号と列番号を指定して、その交差点にあるセルの値を返す関数です。
データ分析や情報の抽出によく使われますね。

えっと、つまり?
この表の上から4行目、左から3列目の値を知りたい(使いたい)!
なんてときに使えるのが、INDEX関数なのです。


単体で使うよりは、MATCH関数とかと組み合わせて使うことが多いよ。
MATCH関数とINDEX関数を組み合わせれば、VLOOKUP関数よりも柔軟な検索ができます。
その準備として、まずはINDEX関数とは?の部分を知っておきましょう!
ちなみに読み方は、「インデックス関数」です。
【Excel・エクセル】INDEX関数の使い方
=INDEX(配列,行番号,列番号)
INDEX | この範囲の、この位置の値を教えて |
配列 | この範囲の |
行番号 | この位置(上から数えて何行目か) 配列が1列の時は、省略できる |
列番号 | この位置(左から数えて何列目か) 配列が1行の時は、省略できる |
=INDEX((参照1,参照2……),行番号,列番号,領域番号)
INDEX | この範囲の、この位置の値を教えて |
参照 | この範囲の(カンマで区切って複数指定) |
行番号 | この位置(上から数えて何行目か) 省略不可 |
列番号 | この位置(左から数えて何列目か) 省略不可 |
領域番号 | 複数指定した参照の、どの範囲か |

ちょま、書き方が2つあるんだけど?

2つの使い方ができる、ハイブリッドな関数なんよ。
まずは簡単そうな、最初の使い方を見てみましょう。
INDEX関数の使い方は、こちらの動画でも分かりやすくご紹介しています!
INDEX関数の使用例1、範囲が1つの場合
先ほどの表の、4行目、3列目にある値を、INDEX関数で検索してみましょう。

※実際に操作できます。
いちいちスクロールするのは面倒なので、別タブか別ウィンドウで開くの推奨です!

=INDEX(A1:D5,4,3)で、求められるよ。説明するね。
ステップ1
まずは関数名、「=INDEX(」と入力します。

ステップ2
次に配列、データがある範囲を指定します。
データがある範囲、セルA1からD5までをドラッグします。
そして「,(カンマ)」。

ステップ3
次は行番号と列番号。何行目、何列目の値を抽出するかですね。
今回は上から4行目、左から3列目のデータを知りたいので「4,3」と入力します。


行、列の順番だね。

間に「,(カンマ)」を入れるのを、忘れないでね。
完成!
これで式は完成です!
Enterを押せば、無事、指定した位置のデータをゲットだぜ!

INDEX関数の使用例2、範囲が複数の場合
INDEX関数のもう1つの使い方も、見てみましょう。
さっきは1つの範囲内でデータを抽出しましたが、この範囲は複数指定できます。

Aの範囲の3行3列目の値、Bの範囲の3行3列目の値って感じで分けられるんよ。
次の表の、水色の範囲とオレンジの範囲、それぞれで値を取得してみましょう。

※練習問題をお使いの方は、「INDEX2」シートを開いてください。

=INDEX(($A$1:$B$5,$C$1:$D$5),A8,B8,C8)で、求められるよ。説明するね。
ステップ1
何はともあれ、まずは関数名「=INDEX(」まで入力してください。

ステップ2
次に参照、データがある範囲ですね。
複数範囲を指定するときは、範囲をカッコで囲みます。

「INDEX((」になるんだね。
「(」を入力して、1つ目の範囲を選びます。
今回は水色の範囲、セルA1からB5までをドラッグしてください。

ステップ3
今回は、作ったINDEX関数をオートフィルして使う予定なので、範囲を絶対参照にしておきましょう。
「F4キー」を押して、$マークを付けてください。

ステップ4
次に2つ目の範囲。範囲を区切るときは、「,(カンマ)」を使います。
「,」を入力して、2つ目の範囲、セルC1からD5までをドラッグしてください。

ステップ5
こちらも「F4キー」で$マークを付けて、範囲を絶対参照にしておきましょう。


「,(カンマ)」でつなげれば、さらに範囲を追加できるよ。
ステップ6
参照が終わったら「)(カッコ閉じ)」を入力して、範囲の指定が終わったことを伝えます。
そして「,(カンマ)」。

ステップ7
次は行番号と列番号。
上から数えて何行目、左から数えて何列目、を指定します。
今回どちらもセルに記載してあるので、そのセルを参照しましょう。
セルA8をクリック→「,(カンマ)」→セルB8をクリック→「,(カンマ)」です。

ステップ8
最後に、領域番号を指定します。

領域展開!
今回は範囲(参照)を2つ指定したので、どっちの範囲から検索するの?ってのをここで指定します。
今回は1番目に水色の範囲、2番目にオレンジの範囲を指定したので、領域番号1=水色の範囲、領域番号2=オレンジの範囲ってことになります。
これもすでにセルに記載しているので、セルC8をクリックして参照しましょう。

完成!
これで式は完成なので、「)(カッコ閉じ)」して、Enterを押してください!
無事、1つ目の範囲の、上から3行目、左から1列目の値をゲットできました!

オートフィルで引っ張ると……

一括で値が取得できましたね!
ちゃんとタイプ1は水色の範囲、2はオレンジの範囲から取得されています。


長かった……

お疲れさま!
【Excel・エクセル】INDEX関数とMATCH関数を組み合わせて検索する
INDEX関数の主な使い方は、MATCH関数と組み合わせた柔軟な検索です。


書き方は、こうだよ。
=INDEX(配列,MATCH(検査値,検査範囲,照合の種類),列番号)
詳しくは、下記ページでご紹介しています!
【Excel・エクセル】INDEX関数とSUMPRODUCT関数を組み合わせて条件に合う値を抜き出す
担当者が「もりの」、価格が「150」円の商品名を抜き出したい時。
INDEX関数とSUMPRODUCT関数、あとROW関数を組み合わせればOKです。

=INDEX(取り出したい値がある列,SUMPRODUCT((1つ目の条件範囲=1つ目の条件)*(2つ目の条件範囲=2つ目の条件),ROW(求めたい値がある列)))

いや、これは難しそうで寒気がしてきた!

1つずつ見ていけば、なんてことはないよ。
詳しくは、下記ページをご確認ください!
【Excel・エクセル】INDEX関数で#REF!エラーが出るときは
行番号、列番号の指定をミスると、#REFエラーが出てきます。
範囲、行番号、列番号が間違えていないか、確認してみてください。

これでINDEX関数の基本がわかったので、他の関数との組み合わせも理解しやすくなりましたね!
それでは、お疲れさまでした!
- 1つの範囲の値を取得するなら「=INDEX(配列,行番号,列番号)」
- 複数範囲の値を取得するなら「=INDEX((参照1,参照2……),行番号,列番号,領域番号)」
- MATCH関数などと組み合わせて使うことが多い
ディスカッション
コメント一覧
まだ、コメントがありません