【Excel関数】Index関数とMatch関数でデータを抽出する(条件に合うデータが単一の場合)

この記事では、Index関数とMatch関数を使って表から検索対象のデータを抽出する方法についてご説明します。

【動画】Index関数とMatch関数を使って表から検索対象のデータを抽出する実際の動き

本題に入る前に、まずは次の動画をご覧ください。


顧客名に該当するデータを上の表からIndex関数とMatch関数を使って抽出し、該当したデータを下の表に出力しています。

Excelファイルの例

今回は次のExcelファイルを用意しました。

以上のExcelファイルは、上の表にいくつかの店舗データが存在しており、セルA3に入力された顧客名に該当する店舗のデータを抽出して下の表に出力するExcelファイルです。

セルA3にD列の顧客名のどれかを入力すると、下の表にその顧客名に該当する店舗データが出力されます。

前提

今回の記事は、以下のポイントを前提として説明していきます。

ポイント
  1. 条件に合うデータは単一の場合
  2. 検索条件は一つだけ

【前提①】条件に合うデータは単一の場合

今回の記事は、条件に合うデータは単一であることが前提の内容となっています。

もし条件に合うデータが複数存在する場合は今回のExcelファイルでは取得できません。(あくまで1レコードしか取得ができない)

条件に合うデータが複数存在する場合は次の記事を参考にしてみてください。

→【Excel関数】Index関数とMatch関数を使って表から検索対象のデータを抽出する(条件に合うデータが複数ある場合)

【Excel関数】Index関数とMatch関数を使って表から検索対象のデータを抽出する(条件に合うデータが複数ある場合)

【前提②】検索条件は一つだけ

今回の記事は、検索条件は一つだけであることが前提の内容となっています。

以上、2つの前提を踏まえてご説明していきます。

Excelファイルの作成の流れ

Index関数とMatch関数を組み合わせて、検索値に合致するデータを抽出する計算式を下の表に入力する
Index関数とMatch関数を組み合わせて、検索値に合致するデータを抽出する計算式を下の表に入力します。

Excelファイル作成の解説

Index関数とMatch関数を組み合わせて、検索値に合致するデータを抽出する計算式を下の表に入力する

Index関数とMatch関数を組み合わせて、検索値に合致するデータを抽出する計算式を下の表に入力します。

埋め込んだ計算式は次の通りです。

計算式

  • =INDEX(A6:H10,MATCH(A3,D6:D10,0),0)
計算式の意味

  • セルA3の値が、左の表の顧客名(D列)と一致する店舗データを取得します。
返す値

  • 検索文字列(セルA3の値)の店舗データ

①Match関数

Match関数は、検索文字列を、検索したい範囲のセルの中から検索し、何行目にあるのかを検索する関数です。

検索して見つかった場合は、検索したセル範囲の上から数えて何行目かを返します。

Match関数の1つ目の引数

Match関数の1つ目の引数には検索文字列を指定します。

今回はセルA3のデータを検索したいので、1つ目の引数にこのセルA3を指定しています。

検索して見つかった場合は、検索したセル範囲の上から数えて何行目かを返します。

Match関数の2つ目の引数

Match関数の2つ目の引数には検索文字列を検索するセルの範囲を指定します。

今回はA3の顧客名と一致する顧客名をセルD6からD10までの間で探したいので、2つ目の引数に「D6:D10」を指定しています。

Match関数の3つ目の引数

Match関数の3つ目の引数には照合する種類を指定します。

この照合する種類には3つあります。

今回は完全に一致する値を検索したいので0を指定しています。

②Index関数

Index関数は、行と列を指定したセルの値を取得します。

今回は、行はMatch関数で取得した行位置、列は上の表の列全てを対象に取得したいので0を指定しています。

Index関数の1つ目の引数

Index関数の1つ目の引数には上の表のセル範囲を指定します。

Index関数の2つ目の引数

Index関数の2つ目の引数にはMatch関数で取得した行位置を指定します。

Match関数により、検索した文字列が何行目にあるのかが特定できるので、その何行目かを2つ目の引数に指定します。

Index関数の3つ目の引数

Index関数の3つ目の引数には上の表のセル範囲を指定します。

今回は引数に0を指定しています。

引数が0の場合、第1引数のセルの列範囲のデータを対象にします。

第1引数のセルがAからHの列を対象としているので、AからHの列を対象にデータを取得します。

検証

セルA3に顧客名を入力すると、上の表にある該当する顧客の店舗データが下の表に出力されるのかを検証してみます。

検証した結果は、次の通りです。

テスト①:スーパーショップを選んだ場合

スーパーショップを選んだ場合、顧客名がスーパーショップの店舗データを下の表に出力しています。

テスト②:オーガニックフードを選んだ場合

オーガニックフードを選んだ場合、顧客名がオーガニックフードの店舗データを下の表に出力しています。

テスト③:自然食品スーパーを選んだ場合

自然食品スーパーを選んだ場合、顧客名が自然食品スーパーの店舗データを下の表に出力しています。

最後に

本記事では、Index関数とMatch関数を使って表から検索対象のデータを抽出する方法についてご説明しました。

Index関数とMatch関数を組み合わせることで、簡単に検索対象のデータを抽出することができます。

表からデータを抽出するのにIndex関数とMatch関数はとても便利なので参考にしてみてくださいね。

Excelのスキル向上やExcelの基礎知識をしっかりと学びたいなら

Excelのスキルを習得したい、Excelの基礎知識をもっと理解したい、そう考えているなら「無期限サポート付きExcel講座【すごい改善】」がおすすめです。

Excelのスキルの基礎を身につけるなら【すごい改善】で無期限サポート付きがあるので、これで「Excelのスキルや基礎」を学ぶのにおすすめですよ。

→ 受講後、何度でも無期限でメールで質問できるアフターサポートがついているExcelマスター講座はこちら