LoginSignup
15
25

More than 5 years have passed since last update.

複数列にまたがるデータ一覧から検索条件に一致する値を取り出す方法

Last updated at Posted at 2017-04-16

検索条件に一致.png

利用シチュエーション

  • 複数列にまたがる既存のデータから特定の条件に一致する値を抽出したい時

直面した問題

 × VLOOKUPだとキーにする値は1列しか指定できない

記述方法

=INDEX(抽出対象範囲,条件1と条件2の両方に当てはまる件数,列)

<記述例>
=INDEX($I$2:$I$4,SUMPRODUCT(($D$2:$H$4=A2)*ROW($A$1:$A$3)),1)

前提条件
A列にドメイン名、D列からI列に元となるデータを記載
Excel条件.png


抽出結果
Excel抽出結果.png


解説

  • SUMPRODUCT関数で特定の条件を指定し、条件に一致した行数をROW関数で抽出
  • INDEX関数で指定した列から上記で抽出した行数の値を抜き出す

個々の関数の説明

INDEX関数は指定された行と列が交差する位置にあるセルの値を返す

書き方 利用例
書式 INDEX(範囲, 行番号, 列番号, 領域番号) INDEX(I2:I4,1)
引数1 1つまたは複数のセルのを範囲を指定 I2:I4
引数2 指定した範囲の上からの行数を指定 1
引数3 指定した範囲の左からの行列数を指定
引数4 複数の領域を選択した場合、どちらの範囲を使用するか指定

SUMPRODUCT関数は指定した複数条件の配列の合計(件数)を返す

書き方 利用例
書式 SUMPRODUCT(範囲1,範囲2,...) SUMPRODUCT((D2:H4=A2)*1)
引数1 選択した範囲から一致する条件を指定 (D2:H4=A2)
引数2 選択した範囲から一致する条件を指定 1

SUMPRODUCT(範囲1,範囲2)で選択した範囲の合計
SUMPRODUCT(条件1*条件2)で条件に一致する件数

ROW関数は指定したセル参照の行番号を返す

書き方 利用例
書式 ROW(範囲) ROW(A1:A3)
引数1 1つまたは複数のセルのを範囲を指定 A1:A3

サンプル

参考

VLOOKUP関数を利用して複数列を検索値として指定したい場合

複数列を検索値として指定したい場合は、前述のINDEX関数を用いたほうが楽ですが、VLOOKUP関数を用いて複数列を指定することも可能です。

記述方法

検索をする列を指定して、なければ次を指定する入れ子方式で記載。

=IFERROR(VLOOKUP($A2,$D$2:$E$4,2,),IFERROR(VLOOKUP($A2,$F$2:$G$4,2,),IFERROR(VLOOKUP($A2,$H$2:$I$4,2,),IFERROR(VLOOKUP($A2,$J$2:$K$4,2,),IFERROR(VLOOKUP($A2,$L$2:$M$4,2,),)))))

15
25
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
25