- ベストアンサー
エクセル 複数条件での検索を関数を使って解決したいです。
エクセル関数を使って複数の条件を満たしたときの 特定のセルの文字列を返す方法を考えています。 例を挙げると A B C D E F 1 金額 日付 名称 金額 日付 名称 2 100 1月5日 a 100 2月1日 =??? 3 200 1月5日 b 4 300 1月6日 c 5 400 2月1日 d 6 100 2月1日 XYZ 7 100 2月3日 e 8 200 2月3日 f 上のような表のときに 金額=「100」 かつ 日付=「2月1日」 という2つの条件を 満たしたときのC列の文字列「XYZ」を返すということをやりたいのです。 金額だけですとVLOOKUP関数を使って =VLOOKUP(D2,A2:C8,3,false) とやって「a」という文字列はかえってくるのですが どうやっても「XYZ」という文字列が返せません。 (日付の条件を入れていないので当たり前ですが...) なにかいい方法がありましたらお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
◆こんな方法もありますよ =INDEX(C2:C8,MATCH(D2&E2,INDEX(A2:A8&B2:B8,),0))
その他の回答 (2)
- wisemac21
- ベストアンサー率39% (171/429)
F2に =INDEX(C2:C8,SUMPRODUCT((A2:A8=D2)*(B2:B8=E2)*ROW(A1:A7)))
お礼
ありがとうございました。 うまくいきました。 SUMPRODUCT関数なんていままで見たこともなかったので これを機会に勉強してみようと思います。
- say2005
- ベストアンサー率36% (18/50)
=DGET(A1:C8;C1;D1:E2)ではいかがでしょうか? 検索したレコードが見つからない時は#VALUE!が表示されます。 ただし欠点として日付と金額が同じレコードがあるとだめですw
お礼
ありがとうございました。 うまくデータを得ることができました。 意味はまだ良くわかっていませんので これから勉強します。 データベース関数はわかりにくいですね。
お礼
ありがとうございました。 うまく文字列を得ることができました。 MATCH関数なんか何のために使うのか今までさっぱりわかりませんでしたが、 少し理解できました。 いろんな方法があるんですね。