- ベストアンサー
EXCELで複数の条件に合致する値を求めたい
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
マスタシートをシート2とし、計算シートをシート1とした場合には次のようにしてはどうでしょう。 複数の条件が多くなっても、データが多くなっても対応できる方法は作業列を作って対応することです。 いずれのシートもA列からD列の1行目には項目名が有るとします。 シート2のE2セルには次の式を入力して下方にドラッグコピーします。 =A2&B2&C2 シート1の料金を表示させるD2セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNTIF(Sheet2!E:E,A2&B2&C2)=0,"",INDEX(Sheet2!D:D,MATCH(A2&B2&C2,Sheet2!E:E,0)))
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
ご利用のエクセルのバージョンが明記されていませんが、Excel2007以降を使っているならSUMIFS関数で一発で出てきます。(推奨) または、すべてのバージョンに共通で =SUMPRODUCT((マスタ!A2:A300=A2)*(マスタ!B2:B300=B2)*(マスタ!C2:C300=C2),マスタ!D2:D300) としても出来ます。 データ数をむやみに多くすると途端に重たくなってくるので、あまりお勧めではありません。
お礼
御礼が遅くなりました。申し訳ありません。 今回はマスタが増える可能性があるので、軽快な動作を 重視して他のやり方を採りますが、洗練されたやり方は 大変参考になります。ありがとうございました。
私だったら、A、B、Cの値を&で連結させて出来た値を検索するようにすると思います。
お礼
ご連絡が遅くなりました。ありがとうございました。 諸事情でマスタの形を変更するのに躊躇いがありましたが、 自分以外の者がメンテナンスする事も考慮して、ご指摘の やり方が効率的だと改めて思いました。ありがとうございました。
お礼
ご連絡が遅くなりました。申し訳ありません。 当初は=A2&B2&C2を用いて、専用のマスタをもう1つ 設けて、VLOOKUPで処理しようと考えておりましたが、 この方法の法が洗練されていますね。また、空欄の場 合の処置までお気遣い頂いている点など、お心遣いが 大変嬉しかったです。ありがとうございました。