プロが教えるわが家の防犯対策術!

エクセル 社員番号から 実施日を表示する

いつもお世話になっています。エクセル2003です。

過去3年分の健診データから社員番号を元に2010年度の実施日を表示させたいと思います。
VLOOKUPとIFかSUMPRODUCTなどの組み合わせだと想像したのですが、うまく行きません。
良い方法をご教授ください。

イメージは以下の通りです。

[シート1]
  A    B    C    D
 年度  社員番号 実施日  身長 ・・・
 2008  1234  2008/4/1
 2009  1234  2009/5/30
 2010  1234  2010/4/28
 2008  5678  2009/1/1
 2009  1234  2009/12/3
 2010  1234  2010/9/7

[シート2]
  社員番号 5678  実施日[    ]
                ↑
             ココに2010年度の実施日を表示する

以上、わかりにくいかもしれませんが、よろしくお願いします。 

A 回答 (2件)

=SUMPRODUCT((Sheet1!A2:A100=B2)*(YEAR(Sheet1!C2:C100)=2010),Sheet1!C2:C100)


と入れて日付の書式をセットするなどで。
「今年の」としたいなら=2010を YEAR(Sheet1!C2:C100)=YEAR(TODAY()) とかでも良いですし,
もちろん別のセルに2010を入れておいて YEAR(Sheet1!C2:C100)=X1 とかにしても構いません。 

この回答への補足

ありがとうございます。
何とかなりそうです。もっと関数を勉強します。

補足日時:2010/04/28 15:06
    • good
    • 0
この回答へのお礼

早速のご解答ありがとうございます。

書き方が悪かったと思います。
社員番号を[シート2]B2 に入力すると 実施日がD2に出るようにしたいのです。

申し訳ないですが、もう一度ご教授願います。

お礼日時:2010/04/28 10:46

回答式をそのまま使ってみて駄目だからすぐ「出来ない」とするのではなく自らも考えて見ましょう。



#1で回答された

=SUMPRODUCT((Sheet1!A2:A100=B2)*(YEAR(Sheet1!C2:C100)=2010),Sheet1!C2:C100)

はご希望のとおり、Sheet2のセルD2に入力する式です。

ただし、例示では
社員コードがSheet1!B列
該当年次がSheet1!A列

なので回答式を少し変更する必要があります。

Sheet1!A2:A100=B2  → Sheet1!b2:b100=B2  (社員コード)
YEAR(Sheet1!C2:C100)=2010 → Sheet1!a2:a100=2010 (該当年次)

とすれば結果が表示されます。

ただし回答例では元データが100行を超えると検索対象から外れるので適宜メンテナンスが必要です。


※もしこの説明で納得されましたら、Pointは#1氏へお願いします。式を考案されたのは#1氏ですから。
    • good
    • 0
この回答へのお礼

ありがとうございます。
関数をもっと勉強します

お礼日時:2010/04/28 15:05

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