ExcelのINDEX関数で行と列が交差するデータを抽出し、そこにMATCH関数を組み合わせ、より柔軟にデータを抽出する方法をご紹介します。

ソリューション最終更新日: 20210204

Excel INDEX関数とMATCH関数を組み合わせてデータを抽出する方法

  • このエントリーをはてなブックマークに追加

ExcelのINDEX関数とは指定した行と列が交差する場所にあるデータを抽出することができますが、そこにMATCH関数を組み合わせることでより柔軟にデータを抽出することができます。
ここではINDEX関数とMATCH関数を組み合わせてデータを抽出する方法をご紹介します。
※本記事の内容はExcel2016 / Excel2019にて確認しています。

INDEX関数

INDEX関数とは、指定した行と列が交差する位置にあるデータを抽出する関数です。書式(構成)はこちらです。

INDEX関数の書式INDEX関数の書式

INDEX関数には3つの引数があります。
・[配列]:データを抽出する範囲
・[行番号]:配列の中で何行目か
・[列番号]:配列の中で何列目か

例として、都道府県の表から「熊本」を抽出します。

1.抽出したデータを表示するセルをクリックし、半角で「=INDEX(」と入力します。

セルに「=INDEX(」を入力セルに「=INDEX(」を入力

2.データを抽出する範囲をドラッグして、「,」を入力します。ここでは「セルA2:D5」を選択します。

配列の範囲を選択配列の範囲を選択

3.データを抽出したい行番号と「,」を入力します。ここでは「3」と入力します。

行番号を入力行番号を入力

4.次にデータを抽出したい列番号と「)」を入力します。ここでは「3」と入力します。

列番号を入力列番号を入力

5.するとデータが抽出されて、「熊本」と表示されます。

データが抽出されたところデータが抽出されたところ

MATCH関数

MATCH関数とは、指定した検査値が検査範囲の中で何番目のセルかを求める関数です。書式(構成)こちらです。

MATCH関数の書式MATCH関数の書式

MATCH関数には3つの引数があります。
・[検査値]:検索する値
・[検査範囲]:検索する範囲
・[照合の種類]:検索方法を指定する
1→検査値以下の最大値
0→検査値に一致する値のみ
-1→検査値以上の最小値

例として、「熊本」が表の何列目にあるのかを求めます。

1.求めた値を表示するセルをクリックし、半角で「=MATCH(」と入力します。

セルに「=MATCH(」を入力セルに「=MATCH(」を入力

2.検査値をクリックして、「,」を入力します。ここでは熊本が何列目にあるのか求めるので、「セルB7」を選択します。

検査値を選択検査値を選択

3.検査値が含まれている検査範囲をドラッグして、「,」を入力します。ここでは「セルA4:D4」を選択します。

検査範囲を選択検査範囲を選択

4.照合の種類を選択し、「)」を入力します。ここでは完全一致の「0」を入力します。

照合の種類を入力照合の種類を入力

5.[Enter]キーを押すと、3列目の「3」が表示されます。

データが抽出されたところデータが抽出されたところ

INDEX関数とMATCH関数を組み合わせる

ここでは例として、価格表から受注シートにデータを抽出します。
商品Cの商品コードを受注シートに表示させます。

商品コードを受注シートに表示するところ商品コードを受注シートに表示するところ

1.数式を入力したいセルをクリックし、「=INDEX(」と入力します。
そして範囲をドラッグします。ここでは「セルA3:C8」を選択します。

「=INDEX(」の入力と範囲の選択「=INDEX(」の入力と範囲の選択

2.このままだと数式をコピーした際、参照先がずれてしまうので[F4]キーを押して絶対参照にして、「,」を入力します。

値を絶対参照にしたところ値を絶対参照にしたところ

3.INDEX関数の行番号をMATCH関数に置き換えます。
「MATCH(」と入力し、検索値である「セルC12」を選択し、「,」を入力します。

「MATCH(」の入力と検査値の選択「MATCH(」の入力と検査値の選択

4.検索値の範囲をドラッグします。ここでは商品名のある「セルB3:B8」を選択します。

検索値を選択検索値を選択

5.こちらの値も[F4]キーを押して、絶対参照にし、「,」を入力します。

値を絶対参照にしたところ値を絶対参照にしたところ

6.照合の種類を選択し、「),」を入力します。ここでは検索値と完全一致した値を抽出するために、「0」を入力します。

照合の種類を入力照合の種類を入力

7.INDEX関数の列番号を選択し、「)」を入力します。ここでは商品コードが1列目にあるので「1」と入力します。

列番号を入力列番号を入力

8.[Enter]キーを押すと、商品Cの商品コードが表示されます。

商品コードが表示されたところ商品コードが表示されたところ

〇他の商品コードも表示させたい場合

1.商品名を入力します。

商品名を入力商品名を入力

2.数式を入力したセルをクリックし、セルの左下にカーソルを動かすと「+」マークが表示されるので、それを下へドラッグします。

数式を入力したセルをドラッグしているところ数式を入力したセルをドラッグしているところ

3.すると、商品コードがすべて表示されます。

商品コードがすべて表示されたところ商品コードがすべて表示されたところ

INDEX関数とMATCH関数の組み合わせを使いこなそう!

以上、INDEX関数とMATCH関数を組み合わせてデータを抽出する方法をご紹介しました。指定した行と列が交差する位置にあるデータを抽出するINDEX関数と、指定した検査値が検索範囲の中で何番目のセルかを求めるMATCH関数を組み合わせることで、よりデータの抽出を柔軟に行うことができます。ぜひ試してみてください。

確認環境:
Windows 10 (Home) 64bit (バージョン:1903)
Excel 2016 (バージョン:2003)、Excel2019 (バージョン:2004)

ライタープロフィール 職人12号

期待のニューカマー!
真の職人目指して日々修業中です。

記事を
シェア