Windows8 & Office2013 Excel2013

3つの条件を満たす値を求めるには

投稿日:

Excelでリストの中から、3つの条件を満たす値を求める方法です。
先日、職場で ちょっと難しい課題にぶつかってしまいました。
リストの中から3つの条件を満たす値を求めるには?
VLOOKUP関数や、MATCH関数とINDEX関数を組み合わせて・・・といろいろ頭を悩ませました。リストは毎回可変するし、縦と横だけならいいのですが、A列とB列で一致するものを求めて行を確定しなければなりません。一行目の項目も毎回変わるので求める列をMATCH関数検索するしかありません。

こういう時は、SUMPRODUCT関数を使うと便利です。もちろん、INDEX関数とMATCH関数も使います。
表

セルB16には、下のように数式を入力しました。

=INDEX(A1:G11,SUMPRODUCT((A2:A11=B13)*(B2:B11=B14)*ROW(A2:A11)),MATCH(B15,1:1,0))

INDEX関数の関数の引数ダイアログボックスです。
[配列]にはリストの範囲ですね。
[行番号]はSUMPRODUCT関数とROW関数で求めます。
[列番号]はMATCH関数で求めます。
関数の引数ダイアログボックス
行番号は、SUMPRODUCT((A2:A11=B13)*(B2:B11=B14)*ROW(A2:A11))で求めています。
数式

スポンサーリンク

このSUMPRODUCT関数って面白いです。私は知らなくてビックリしました。
興味がある方は、[SUMPRODUCT関数]で検索して調べてみてください。


ふと、思い付いたのですが、A列とB列をくっつけた値をC列に表示すれば、MATCH関数とINDEX関数を組み合わせて求めることもできますね。以下のページで解説しています。
INDEX関数とMATCH関数 / 行と列の交差するセルの値を求める

列を追加した表

求める値は同じになります。
INDEX関数とMATCH関数


【追記】
A列とB列をくっつけた値をC列に表示しなくても、MATCH関数とINDEX関数を組み合わせて求めることができます!下の式で求めることができますね!いろいろ勉強させていただきました。

=INDEX(A2:G11,MATCH(B13&B14,INDEX(A2:A11&B2:B11,),),MATCH(B15,1:1,0))

関数の引数ダイアログボックス表

データ範囲が可変したり、検索する文字列がリストにない場合など、その時の用途によって使い分けてみてください。エラー表示の対処には、IFERROR関数が便利です。エラーの場合の値を指定する

リスト範囲は、名前を付けて置くと便利です。また、リスト範囲が可変する場合は名前定義の参照範囲に数式を入力して範囲が変化しても対応できるようにしておくと便利です。
縦横の範囲が可変する名前定義

トラブルをすぐに解決したいならteratail

お勧め記事と広告

関連記事

ピボットのアイテムの並べ替えはドラッグで

Excelのピボットデーブルで作成したフィールドのアイテムは、ドラッグで移動することができます。 下は、PowerPivotのテーブルです。 ...

折れ線グラフに系列名をつける

Excelで下のような折れ線グラフを作成しました。 凡例に系列名が表示されていますが、 下のように各折れ線グラフの横に系列名を表示した方が分 ...

行番号を使って連番を表示

Excelで下の表のようにA列に[NO]フィールドがあって、1から連番が並んでいる表があります。 この表で4行目と9行目を削除すると、下のよ ...

ペイントの最近使った画像を削除する

Windows8.1のペイントで[最近使った画像]を削除する方法です。 もっと簡単にできる方法はないかなとあれこれやってみたのですが、従来通 ...

フィールドのグループ化

Excel2013のピボットテーブルでの操作です。 日付フィールドで[月]や[年]でグループ化するには、日付フィールドを選択して[分析]タブ ...

-Windows8 & Office2013 Excel2013

Copyright © 2001-2017 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2017 AllRights Reserved Powered by AFFINGER4.