• ベストアンサー

エクセル 複数条件での検索を関数を使って解決したいです。

エクセル関数を使って複数の条件を満たしたときの 特定のセルの文字列を返す方法を考えています。 例を挙げると    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」という文字列が返せません。 (日付の条件を入れていないので当たり前ですが...) なにかいい方法がありましたらお願いします。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆こんな方法もありますよ =INDEX(C2:C8,MATCH(D2&E2,INDEX(A2:A8&B2:B8,),0))

numanuma19
質問者

お礼

ありがとうございました。 うまく文字列を得ることができました。 MATCH関数なんか何のために使うのか今までさっぱりわかりませんでしたが、 少し理解できました。 いろんな方法があるんですね。

その他の回答 (2)

  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.2

F2に =INDEX(C2:C8,SUMPRODUCT((A2:A8=D2)*(B2:B8=E2)*ROW(A1:A7)))

numanuma19
質問者

お礼

ありがとうございました。 うまくいきました。 SUMPRODUCT関数なんていままで見たこともなかったので これを機会に勉強してみようと思います。

  • say2005
  • ベストアンサー率36% (18/50)
回答No.1

=DGET(A1:C8;C1;D1:E2)ではいかがでしょうか? 検索したレコードが見つからない時は#VALUE!が表示されます。 ただし欠点として日付と金額が同じレコードがあるとだめですw

numanuma19
質問者

お礼

ありがとうございました。 うまくデータを得ることができました。 意味はまだ良くわかっていませんので これから勉強します。 データベース関数はわかりにくいですね。