小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2026年1月27日【ID:0】

【Excel】INDEXとMATCHの組み合わせ

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


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予備メンバーに加入して連携すると、
一部の広告が非表示になります。


メンバー募集 メンバー募集





リンクの共有はこちらから行えます。

  リンクコピー    X Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

7266260

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ