プロが教える店舗&オフィスのセキュリティ対策術

エクセル関数を使って複数の条件を満たしたときの
特定のセルの文字列を返す方法を考えています。

例を挙げると

   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」という文字列が返せません。
(日付の条件を入れていないので当たり前ですが...)

なにかいい方法がありましたらお願いします。

A 回答 (3件)

◆こんな方法もありますよ


=INDEX(C2:C8,MATCH(D2&E2,INDEX(A2:A8&B2:B8,),0))
    • good
    • 36
この回答へのお礼

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

お礼日時:2009/02/26 14:41

F2に


=INDEX(C2:C8,SUMPRODUCT((A2:A8=D2)*(B2:B8=E2)*ROW(A1:A7)))
    • good
    • 3
この回答へのお礼

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

お礼日時:2009/02/26 14:39

=DGET(A1:C8;C1;D1:E2)ではいかがでしょうか?


検索したレコードが見つからない時は#VALUE!が表示されます。

ただし欠点として日付と金額が同じレコードがあるとだめですw
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/02/26 14:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!