こんにちは!毎日エクセルを活用しているけたです。
今回は、私のブログにお越し頂きありがとうございます!
今回は、このようなエクセルの悩みを解決していきます!

INDEX関数とMATCH関数を組み合わせると色々できるって聞いたけど難しい・・・
INDEX関数とMATCH関数の組み合わせは、基本が出来ている人向けの応用関数です。
今回は、INDEX関数とMATCH関数の使い方をわかりやすく解説していきます。
- INDEX関数の使い方
- MATCH関数の使い方
- INDEX関数とMATCH関数を使って交通機関の料金計算をする方法を解説

ちなみに私は、就職してから約14年間毎日エクセルを使ってきた経験があります。
INDEX関数とは?使い方をわかりやすく解説
INDEX関数の基本的な使い方を説明していきます。
INDEX関数の基本の使い方とは?
INDEX関数の基本の使い方を写真を使ってわかりやすく説明していきます。
- 基本の書式:INDEX(範囲,行番号,列番号)
- 範囲:抽出する値を含むセル範囲
- 行番号:範囲内で抽出する行番号
- 列番号:範囲内で抽出する列番号
指定した範囲で指定した行番号⇒指定した列番号の値を取り出す関数です。
まずは簡単な使い方例を紹介していきます。
下記の写真を参考にして下さい。
INDEX関数の使用例
このような表があったとします。
赤枠に指定した値を表示します。
C9とC10には、それぞれ次のような式を入力します。
②C10:=INDEX(C3:D6,4,2)
①『C9:=INDEX(C3:D6,4,1)』の場合
C3~D6の範囲を指定し、上から縦に4番目、左から横に1番目にある値を表示するので、『C9=180(C6セルの値)』になります。

INDEX関数単体ではあまり使わないですが、次に紹介するMATCH関数を組み合わせることで、『VLOOKUPより汎用性の高い関数』になります!
MATCH関数とは?使い方をわかりやすく解説していきます。
次は、MATCH関数の使い方と具体的な例を元に説明していきます。
MATCH関数の基本の使い方とは?
MATCH関数の基本の使い方を写真を使ってわかりやすく説明していきます。
- 基本の書式:MATCH(検査値,検査範囲,[照合の種類])
- 検査値:位置を求める値
- 検査範囲:検査値を含むセル範囲を指定します。
- 照合の種類:検査値を探す方法で省略または「1」を指定すると検査値以下の最大値。「0」を指定すると検査値と完全一致。「-1」を指定すると検査値以上の最小値を検索します。
MATCH関数の使用例
このような表があったとします。
B9とB10に入力した文字が指定した範囲の何番目にあるかをC9とD9に表示します。
C9とC10には、次のような式を入力します。
②C10:=MATCH(B10,C2:D2,0);B10セルの値”D君”は「C2:D2の範囲」の何番目の値か
①『C9:=MATCH(B9,B3:B6,0)』の場合
①で”D君”、②でB3:B6の範囲と指定し、指定した範囲の何番目に”D君”があるかを表示します。
この場合は、上から縦に4番目なので『C9=4』となります。
②『C10:=MATCH(B10,C2:D2,0)』の場合
①で”体重”、②でC2:D2の範囲と指定し、指定した範囲の何番目に”体重”があるかを表示します。
この場合は、左から横に2番目なので『C10=2』となります。
INDEX関数とMATCH関数を組み合わせ
ここでは、INDEX関数とMATCH関数の組合せを具体例を元にわかりやすく解説していきます。
INDEX関数×MATCH関数とVLOOKUP関数の違い
INDEX関数とMATCH関数を組み合わせることで、VLOOKUP関数よりも『より細かく検索』することができるようになります。
VLOOKUP関数は、【検査値に対して右に検索】します。
これに対して、
INDEX×MATCH関数は、【検査値の左にも検索可能】です。
基本①わかりやすいINDEX関数×MATCH関数の組合せ例

名前データから左側にある【顧客ID】を検索する方法です。
次のような表があったとします。
次に、求めたい表はこちらです。
名前を元に、顧客IDや入会日を求める表となっております【検査値が図1のとおり名前より左にあります。
VLOOKUP関数を使った場合は、図1の名前の右側に求めたい【顧客ID】や【入会日】を持ってこないといけませんが、、、
INDEX関数×MATCH関数ならその必要はありません!
B3には、下記の表の数式が入ります。
B3:=INDEX(顧客リスト!B:B,MATCH(求めたい表!A3,顧客リスト!C:C,0))
=INDEX(①求めたい答えの列(縦),MATCH(②検査値,③検査値を含む列(縦),0))



簡単に言うと、【=INDEX(①求めたい答えの列(縦),MATCH(②検査値,③検査値を含む列(縦),0))】
上記の流れで覚えると応用が利くと思います。
慣れれば、VLOOKUPよりもはるかに使い易い関数となっております。
応用①INDEX関数とMATCH関数を使って交通費を求める方法
次のような表があったとします。
『おとな1人とこども1人で、電車とバスを使ってお出かけ』したときの料金計算をする場合で説明していきます。
指定した条件(こども料金 または おとな料金)×(徒歩 または 電車 または バス)の金額を赤枠に表示させます。
D8には次のような式を入力します。

ちょっと長めの関数になっているので色を使ってそれぞれを説明していきます!
INDEX関数の書式『INDEX(①範囲,②行番号,③列番号)』の行番号と列番号を求めるときにMATCH関数を使っています。
①C3:E4の範囲の中
②B8の”こども”はB3:B4の範囲で何番目?
③C8の”電車”はC2:E2の範囲で何番目?
つまり、INDEX(C3:E4,1,2)という意味になるので『D8=500』となります。
絶対参照、相対参照で指定しているので、そのまま下にコピぺします。
最後に、D12に『=SUM(D8:D11)』を入力すれば完成です。

こんな感じで、INDEX関数×MATCH関数はいろいろと応用できる組み合わせです!
INDEX関数とMATCH関数のまとめ
- INDEX関数×MATCH関数は検査値の右にも左にも検索可能
- VLOOKUPのように検査値から何番目と数えなくてもよい
複数の関数を組み合わせて使うことで、エクセルを効率よく使うことができるようになります。
特に、今回のINDEX関数×MATCH関数はLOOKUP関数の上位互換なので是非マスターしましょう!
今回は以上です。
最後まで読んで頂きありがとうございます。
『INDIRECT関数』と『名前の定義』もおすすめの組み合わせです。
こちらの記事で紹介しているので合わせてマスターしましょう!
コメント