大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excelで、INDEX関数とMATCH関数を使って、複数該当する値を取得する方法について、ご紹介します。複数該当する値を取得するには、「作業列」を使う方法が簡単です。INDEX関数とMATCH関数をうまく使いこなせると、検索できる幅が広がります。

はじめに

この記事では、INDEX関数とMATCH関数を使って、複数該当する値を取得する方法について、ご紹介します。

複数該当する値を取得する場合は、「作業列」を使う方法が簡単です。

INDEX関数とMATCH関数を使えば、検索できるスキルの幅が広がります。

うまくINDEX関数とMATCH関数を使いこなしていきましょう。

では、INDEX関数とMATCH関数で、「複数該当」する値を取得する方法について、解説していきます。

この記事で紹介すること

  • INDEX関数とMATCH関数で複数該当する値を取得

目次から見たい項目へ移動すると便利ですよ。

目次

ExcelでINDEXとMATCHを使って検索する

Excelで、INDEX関数とMATCH関数を使って、複数該当する場合の検索方法について、ご紹介します。

検索する値が1つの場合

検索する値が1つの場合は、簡単で、次のようにINDEX関数とMATCH関数を使うとできます。

検索する値が1つの場合

検索する値が1つの場合は、INDEX関数とMATCH関数を使って検索できる

商品が「A」である行を検索できています。

検索する値によっては、検索結果が複数該当する場合があります。

次のような場合です。

検索する値が複数該当する場合

商品の「A」が、複数ある場合に、INDEX関数とMATCH関数で検索しても、1つしか検索できません。

検索する値が「複数該当」する場合

検索する値が複数該当する場合でも、1つしか検索できない

商品「A」が複数該当しますけども、1つしか検索できません。

この記事でやりたいのは、次のように複数該当する場合は、複数の検索結果を出力するということです。

複数該当する値を取得したい

複数該当する場合は、複数の検索結果を出力する

商品「A」が3つあるので、検索結果が3つとなっています。

では、INDEX関数とMATCH関数で、検索する場合に、複数該当する場合の検索方法について、解説していきます。

INDEXとMATCHで複数該当する場合の検索

INDEX関数とMATCH関数で、複数該当する場合に複数の結果を出力するには、作業列を使うのが簡単です。

では、やってみます。

作業列を追加

次のような表を使います。

表を用意

表を用意

商品「A」を複数入力しました。

作業列を追加します。

作業列を追加

作業列を追加

この作業列に「COUNTIF関数」を入力していきます。

やりたいのは、作業列に、商品「A」の連番を入力する、ということです。

最終的にこんな出力結果にしたいです。

作業列に商品Aの「連番」を入力したい

作業列に商品「A」の連番を入力したい

では、「COUNTIF関数」を使って、商品「A」の連番を入力していきます。

COUNTIF関数の入力

商品「A」に一致する連番を入力したいので、「=COUNTIF(C1:C2,G1)」と入力します。

商品「A」の連番を入力

あとで、下の方にコピーしたいので、COUNTIFの範囲の一部を絶対参照にします。

COUNTIF関数の範囲の一部を絶対参照にする

「=COUNTIF($C$1:C2,G1)」と入力しています。

検索条件の検索条件も絶対参照にします。

COUNTIF関数の検索条件も絶対参照にする

「=COUNTIF($C$1:C2,$G$1)」と入力しています。

では、下の方にコピーします。

セルをコピーする

数式をコピーした結果です。

数式をコピーした結果

商品「A」以外の値がいらないですね。

IF関数の入力

商品「A」以外の値を空白「""」にするために、「IF関数」を使います。

商品「A」以外の値を空白「

「=IF(C2=G1,COUNTIF(C1:C2,$G$1),"")」と入力しています。

下の方にコピーするので、検索値を絶対参照にします。

IF関数の論理式の一部を絶対参照にする

「=IF(C2=$G$1,COUNTIF(C1:C2,$G$1),"")」と入力しています。

では、下の方にコピーしてみます。

数式を下にコピーする

これで、商品「A」の連番が入力できます。

商品Aの「連番」が完成

商品「A」の連番が完成

商品「A」の連番が完成しました。

この連番を使って、INDEX関数とMATCH関数で、複数該当する値を検索していきます。

INDEXとMATCHで検索する

先ほど作成した作業列の連番を使って、検索値を検索してみます。

作業列が「1」である行を取得

INDEX関数とMATCH関数を使って、作業列が「1」である行の「A列」の値を取得します。

INDEX関数とMATCH関数を使って検索値を検索する

「=INDEX(A:A,MATCH(1,D:D,0))」と入力しています。

この数式を右の方にコピーしますので、作業列「D:D」を絶対参照にします。

作業列を絶対参照にする

「=INDEX(A:A,MATCH(1,$D:$D,0))」と入力しています。

結果をみてみます。

作業列が1である行のA列を取得した結果

作業列が「1」である行の「A列」を取得できました。

この数式を右の方にコピーします。

数式を右の方にコピーする

コピーした結果です。

数式を右にコピーした結果

これで、作業列が「1」である行の値を取得できました。

作業列が「2」である行の値を取得

同じように次は、作業列が「2」である行の「A列」の値を検索します。

作業列が「2」である行の「A列」の値を検索

セルには「=INDEX(A:A,MATCH(2,$D:$D,0))」と入力しています。

これで、作業列が「2」である行の「A列」が取得できます。

作業列が「2」である行の「A列」が取得できる

ただ、これでは面倒くさいので、「ROW関数」を使います。

作業列の連番を「ROW関数」で取得

これで、「1、2、3、」と連番を自動で取得することができます。

作業列の取得を「ROW関数」でする

セルには、「=INDEX(A:A,MATCH(ROW(A1),$D:$D,0))」と入力しています。

結果は、同じように作業列が「1」である行の値が取得できます。

作業列をROW関数を使って自動で取得した結果

ROW関数を使って、作業列が「1」である行の値を取得できました。

これを表全体にコピーします。

表全体にコピー

数式を表全体にコピーする

作業列の「1、2、3」の値を取得できました。

これで、INDEX関数とMATCH関数を使って、複数該当する値を取得することができました。

ただ、取得できる値がないので、4行目以降がエラーとなっています。

このエラーを「IFERROR関数」を使って、空白「""」にしていきます。

IFERRORを使ってエラー対策

エラーとなっていたセルを「IFERROR関数」を使って空白「""」にしていきます。

次のように「IFERROR関数」を入力していきます。

IFERROR関数でエラーを空白にする

IFERROR関数を入力する

セルには、「=IFERROR(INDEX(A:A,MATCH(ROW(A1),$D:$D,0)),"")」と入力してます。

エラーがない場合は、同じ結果を取得できます。

IFERROR関数を使った結果

では、この数式を表全体にコピーします。

表全体にコピーする

数式を表全体にコピーする

結果をみてみます。

複数該当する値を取得した結果

IFERROR関数でエラーを非表示にした結果

エラーがなくなりました。

こんな感じで、INDEX関数とMATCH関数を使うと、複数該当する値を取得することができます

検索値を変更してみる

先ほど作った数式で、検索値を「D」にしてみます。

検索値を変更してみる

検索値を変更した結果

商品が「D」である行の値を取得できました。

検索結果が1つの場合も、正しく検索できています。

おわりに

この記事では、INDEX関数とMATCH関数を使って、複数該当する値を取得する方法について、ご紹介しました。

複数該当する値を取得する場合は、「作業列」を使う方法が簡単です。

INDEX関数とMATCH関数を使えば、検索できるスキルの幅が広がります。

うまくINDEX関数とMATCH関数を使いこなしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す