dポイントプレゼントキャンペーン実施中!

Excelで以下の様な表を作成しています。

a列 b列
---- ---------
key1 2011/3/2
key2 2011/2/4
key3 2011/4/3
key2 2011/5/3
key2 2011/2/24
key3 2011/3/10
key1 2011/1/1


c1にkey1と入れると、d1にa列がkey1でb列の一番新しい日付を表示したいのです。
例えば、
c1にkey1を入力すると、d1には2011/3/2と表示される
c1にkey2を入力すると、d1には2011/5/3と表示される

様にしたいのですが、どの様な数式を書けば良いかご伝授いただけないでしょうか?

因みにd1に「=INDEX(B:B,MAX(INDEX((A:A=D1)*ROW(B:B),0)),0)」と入力してみましたが
c1に入力した「最後の」b列データになってしまいました。

皆さんのお知恵を拝借させて頂きたく、よろしくお願い致します。

A 回答 (4件)

NO2です。


A列のキーが存在しないと0になるので少し変更してみました。
=IF(COUNTIF(A:A,C1),MAX(INDEX((A:A=C1)*B:B,)),"")
    • good
    • 0
この回答へのお礼

回答ありがとうございました。式の意味を考えると「なるほど」分かりやすいです。
助かりました。

お礼日時:2011/12/05 13:14

D1: =SUMPRODUCT(MAX((A1:A100=C1)*(B1:B100)))

    • good
    • 0
この回答へのお礼

回答ありがとうございました。
SUMPRODUCTで複数の検索結果を扱えばよいのですね。
大変助かりました。

お礼日時:2011/12/05 13:15

一例です。


D1に=IF(C1<>"",MAX(INDEX((A:A=C1)*B:B,)),"")
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
キーが存在しない場合の配慮も必要ですね。
大変助かりました。

お礼日時:2011/12/05 13:15

=MAX(INDEX(B:B*(A:A=D1),0))


でいいです。

ただし,Excel2007以降を利用していることが前提です。

あぁ,あとご質問の状況説明が間違っていますが,key1などを「D1に」,数式はE1などに書きます。
    • good
    • 0
この回答へのお礼

回答ならびにご指摘頂きましてありがとうございました。
大変助かりました。

お礼日時:2011/12/05 13:16

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