• ベストアンサー

EXCELで複数の条件に合致する値を求めたい

煮詰まってしまい困っています。どなたか助けてください。 別シートにマスタを持ち、ここに”出発点”、”目的地”、”運搬物”、”料金”が 300件程登録されています。 計算用シートには、1回ごとの運搬記録を登録するようになっていて、 ”出発点”、”目的地”、”運搬物”を入力します。 この時に、マスタから上記3項目が完全一致する条件の”料金”を求めたいと 考えています。DGETでは2件目以降が上手くいかずホトホト困っております。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.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)))

griffin-aki
質問者

お礼

ご連絡が遅くなりました。申し訳ありません。 当初は=A2&B2&C2を用いて、専用のマスタをもう1つ 設けて、VLOOKUPで処理しようと考えておりましたが、 この方法の法が洗練されていますね。また、空欄の場 合の処置までお気遣い頂いている点など、お心遣いが 大変嬉しかったです。ありがとうございました。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

ご利用のエクセルのバージョンが明記されていませんが、Excel2007以降を使っているならSUMIFS関数で一発で出てきます。(推奨) または、すべてのバージョンに共通で =SUMPRODUCT((マスタ!A2:A300=A2)*(マスタ!B2:B300=B2)*(マスタ!C2:C300=C2),マスタ!D2:D300) としても出来ます。 データ数をむやみに多くすると途端に重たくなってくるので、あまりお勧めではありません。

griffin-aki
質問者

お礼

御礼が遅くなりました。申し訳ありません。 今回はマスタが増える可能性があるので、軽快な動作を 重視して他のやり方を採りますが、洗練されたやり方は 大変参考になります。ありがとうございました。

noname#181154
noname#181154
回答No.1

私だったら、A、B、Cの値を&で連結させて出来た値を検索するようにすると思います。

griffin-aki
質問者

お礼

ご連絡が遅くなりました。ありがとうございました。 諸事情でマスタの形を変更するのに躊躇いがありましたが、 自分以外の者がメンテナンスする事も考慮して、ご指摘の やり方が効率的だと改めて思いました。ありがとうございました。