INDEX関数とMATCH関数を組み合わせて使うと、VLOOKUPよりもフレキシブルにデータを検索できます。
INDEX関数とMATCH関数を組み合わせて使う方法を以下のように3つの記事に分けて、紹介していきます。
- 1回目:INDEX関数 <今回>
- 2回目:MATCH関数
- 3回目:INDEX関数とMATCH関数の組み合わせ
今回は1回目の『INDEX関数』の使い方を紹介していきます。
- INDEX関数の構文
- 1.INDEX(対象範囲,行番号)の使用例
- 2.INDEX(対象範囲,列番号)の使用例
- 3.INDEX(対象範囲,行番号,列番号)の使用例
- 4.INDEX((対象範囲1,対象範囲2・・・),行番号,列番号,対象範囲の指定)の使用例
INDEX関数の構文
INDEX関数は以下の4つの書き方ができます。
『3.INDEX(対象範囲,行番号,列番号)』の形でよく使うので、『3.INDEX(対象範囲,行番号,列番号)』だけは覚えましょう。1.2.4.のパターンは覚えなくても良いです。
- INDEX(対象範囲,行番号)
- INDEX(対象範囲,列番号)
- INDEX(対象範囲,行番号,列番号)
- INDEX((対象範囲1,対象範囲2,・・・),行番号,列番号,対象範囲の指定)
構文は数式バーに入力すれば以下のように表示されるので、暗記するのではなく
以下の表示で「3.」の使い方を思い出せるくらいに覚えておけば大丈夫です。
忘れたらGoogleなどで検索すればすぐ出てくるので、徐々に覚えたらいいです。
1.INDEX(対象範囲,行番号)の使用例
特定の1列の範囲を指定して、その範囲の中の何行目のデータを取得するか指定します。
下の例の「INDEX(B37:B44,1)」は、範囲B37:B44の中の1行目のデータの「ID」を返しています。「INDEX(D37:D44),5」は範囲D37:D44の中の5行目のデータの「生産」を返しています。
複数の列にまたがる範囲を指定するとエラーが返ります。複数の列、複数の行にまたがる範囲の場合は、行番号と列番号を指定する必要があります。
2.INDEX(対象範囲,列番号)の使用例
特定の1行の範囲を指定して、その範囲の中の何列目のデータを取得するか指定します。
下の例の「INDEX(B38:D38,1)」は、範囲B38:D38の1列目のデータを返しています。「INDEX(B39:D39,3)」は、範囲B39:D39の3列目のデータを返しています。
複数の列にまたがる範囲を指定するとエラーが返ります。複数の列、複数の行にまたがる範囲の場合は、行番号と列番号を指定する必要があります。
3.INDEX(対象範囲,行番号,列番号)の使用例
対象範囲の行番号、列番号を指定して、行と列が交差するデータを取得します。
下の例「=INDEX($B$37:$D$44,2,3)」は$B$37:$D$44の範囲の2行目、3列目のデータ「営業」を返しています。
「=INDEX($B$37:$D$44,F41,G41)」は、行番号と列番号をセル参照しています。$B$37:$D$44の範囲の1行目、2列目のデータ「名前」を返しています。
「=INDEX($B$37:$D$44,F42,G42)」は、同じ範囲の3行目、3列目のデータ「営業」を返しています。
4.INDEX((対象範囲1,対象範囲2・・・),行番号,列番号,対象範囲の指定)の使用例
複数の範囲のどの範囲の何行目、何列目のデータを取得するかを指定します。
下の例「=INDEX((B37:D40,B42:D44),2,3,1)」は、対象範囲B37:D40とB42:D44の2つの範囲の1つ目の範囲を指定し、2行目、3列目のデータ「営業」を返しています。
「=INDEX((B37:D40,B42:D44),2,3,2)」は、対象範囲1にB37:D40、対象範囲2にB42:D44を指定、対象範囲2の2行目、3列目のデータ「経営企画」を返しています。
この記事を難しく感じた方は、以下のINDEX関数の記事もあわせて試してみてください。
MATCH関数の記事はこちら
INDEX関数とMATCH関数を組み合わせて使う記事はこちら