Excel 複数条件でVlookupやXlookup同様の機能を実現する方法

Excelの関数であるVlookup関数やXlookup関数で複数条件で結果を出したい場合の代替の計算式を紹介する。

PR

Excel 複数条件でVlookupやXlookup同様の機能を実現する方法①

INDEX関数とMATCH関数を組み合わせて、複数条件でリストを絞り込んでVlookup関数やXlookup関数のように結果を出す計算式は下記。

=INDEX([出力列],MATCH(1,([条件列1]=[条件値1])*([条件列2]=[条件値2])*・・・*([条件列n]=[条件値n]),0))
出力列リストで出力したい列を指定する
条件列1~n絞り込む条件で使用する列を指定する
条件値1~n条件列1~nで絞り込む条件値を指定する

例1:

=INDEX(D:D,MATCH(1,(A:A=H2)*(C:C=H3),0))

出力列で複数列を結合・整形して出力することができる。

例2:

=INDEX(B:B&"銀行 "&D:D&"支店",MATCH(1,(A:A=H2)*(C:C=H3),0))

PR

Excel 複数条件でVlookupやXlookup同様の機能を実現する方法②

INDEX関数とFILTER関数を組み合わせて、複数条件でリストを絞り込んでVlookup関数やXlookup関数のように結果を出す計算式は下記。

=INDEX(FILTER([リスト全体],([条件1列]=[条件1値])*([条件2列]=[条件2値])*・・・*([条件n列]=[条件n値]),""),1,[出力列番号])
リスト全体条件列1~Nや出力列で使用する列を含む列範囲を指定する
条件列1~n絞り込む条件で使用する列を指定する
条件値1~n条件列1~nで絞り込む条件値を指定する
出力列番号結果を出力する列番号を指定する

例3:

=INDEX(FILTER(A:D,(A:A=H2)*(C:C=H3),""),1,4)

出力列番号で指定をした場合、列の追加などで表のレイアウトが変わると使えなくなる。変化に強くするため、列名称で指定できるようにするには、MATCH関数を使用して下記のようにする。

例4:

=INDEX(FILTER(A:D,(A:A=H2)*(C:C=H3),""),1,MATCH(TRUE,(1:1="支店名"),0))

複数結果が表示される場合に指定項目でソートして1番目を取得する場合には下記の計算式を使うと良い。

=INDEX(SORT(FILTER([リスト全体],([条件列1]=[条件値1])*([条件列2]=[条件値2])*…*([条件列n]=[条件値n]),""),[並び替えインデックス],[昇順降順],FALSE),1,[出力列番号])
並び替えインデックス並び替えを行う列をリスト全体での列番号で指定する
昇順/降順1:昇順、-1:降順

例5:開始日の降順で1番目の支店名を出力する

=INDEX(SORT(FILTER(A:E,(A:A=H2)*(C:C=H3),""),5,-1,FALSE),1,4)

\ITメモが役に立ったら/

ITメモをサポートする!
Office
PR

コメント

タイトルとURLをコピーしました