※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。
2026年1月27日【ID:0】
【Excel】INDEXとMATCHの組み合わせ
INDEX関数とMATCH関数を組み合わせることによって、以下のように、マトリックス表(クロス表)から値を抽出することができます。

この数式、一見長くて難しそうですが、理屈が分かると簡単です。
ということで、INDEX関数とMATCH関数の組み合わせで、値を抽出する仕組みについて解説していきます。
INDEX関数
まずは、INDEX関数についての解説です。
INDEX関数には、「配列・行番号・列番号」の3つを指定します。
=INDEX(配列, 行番号, 列番号)
[配列]に指定した範囲から、指定した[行番号・列番号]に位置する値を取得します。
実際に、以下の数式を入力します。
=INDEX(C3:D5,3,2)
// C3:D5:配列
// 3:行番号
// 2:列番号

[配列]に指定した範囲の3行目2列目に位置する値を取得するので、プラン「C」性別「女」の「1,200」が抽出されます。

MATCH関数
次は、MATCH関数についての解説です。
MATCH関数には、「検査値・検査範囲、照合の種類」の3つを指定します。
=MATCH(検査値, 検査範囲, 照合の種類)
[検査値]に指定した値を、[検査範囲]に指定した範囲の先頭から探し、見つかった位置の番号(先頭から1、2,3、…)を取得します。
[照合の種類]には、「1、0、―1」が指定でき、それぞれ、以下の検査方法を指します。
| 1:検査値以下 0:検査範囲と完全一致 ―1:検査範囲以上 |
こちらでは、一番使われる「0」のみについて解説していきます。
実際に、以下の数式を入力します。
=MATCH(G2,C2:D2,0)
// G2:検査値
// C2:D2:検査範囲
// 0:照合の種類(完全一致)

横方向は左が先頭、縦方向は上が先頭になります。
そのため、検査範囲の「男」が最初に確認され、その次に「女」が確認されます。
そこで、検査値の「女」が見つかった位置、2番目の「2」を取得します。

次に、以下の数式を入力します。
=MATCH(G3,B3:B5,0)
// G3:検査値
// B3:B5:検査範囲
// 0:照合の種類(完全一致)

この場合、検査範囲の先頭の「A」から確認し、検査値の「C」の位置を取得します。
「C」の位置は先頭から3番目のため、「3」を取得します。

INDEX関数とMATCH関数の組み合わせ
最後に、INDEX関数とMATCH関数の組み合わせです。
MATCH関数を活用することで、対象の値の位置情報を取得することができ、INDEX関数を活用することで、指定した位置情報から、その位置の値を取得することができます。
そのため、INDEX関数の「行番号・列番号」にMATCH関数の数式を指定します。
=INDEX(C3:D5,3,2)
=MATCH(G2,C2:D2,0)
=MATCH(G3,B3:B5,0)
↓
=INDEX(C3:D5,MATCH(G3,B3:B5,0),MATCH(G2,C2:D2,0))

これで完成です。

INDEX関数に指定する位置情報の順番は「行番号→列番号」になるので、順番が逆にならないように注意してください。
※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。




















































