- ベストアンサー
エクセルの関数について
DATE関数について教えてください。 エクセルで、シート1のA1セルにTODAY関数で本日の日付が入るようにセットし、 A2にVLOOKでシート2よりコメントを引き込むように設定しています。 シート2はA列に1月1日から12月31日まで順に並べ、B列にコメントを入れた 表になっています。 ここで質問なのですが、A1やシート2の日付はすべて2008年が入ってしまい、 A1セルが2009年になってしまうと、シート2から引き込まなくなってしまいます。 これを回避するために、A1とシート2ともに年を省き 月日のみで永続的に引き込みが出来るようにしたいのですが、 DATE関数などを利用して可能でしょうか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
年を2008で固定してはどうでしょう。 DATE(2008,MONTH(A1),DAY(A1))
その他の回答 (3)
- mu2011
- ベストアンサー率38% (1910/4994)
いづれも月日で検索する方法ですが如何でしょうか。 =INDEX(Sheet2!B:B,SUMPRODUCT((TEXT(Sheet2!$A$1:$A$400,"m/dd")=TEXT(A1,"m/dd"))*ROW(Sheet2!$A$1:$A$400)))
お礼
ありがとうございます。 私の勉強不足ですね。。。 教えていただいたものがどのような仕組みの関数なのか 調べて今度の参考にしたいと思います。
- imogasi
- ベストアンサー率27% (4737/17069)
Sheet2の1年の予定等来年になっても大筋変わらないのなら、 Sheet2の検索値を月日を文字列にして(表の第1列)、表を作ればよい。数字で103(1月3日の例)でもよいかもしれないが。 Today()から如何様にも加工可能だから。 Sheet1のToday()->(関数式内で)そこから月日を文字列化ー>VLOOKUPで表引きは出来るが、TODAY()->そのままー>VLOOKUPの検索値を関数でバーチャルに加工ー>VLOOKUPで表引きは出来無いからです。 --以下次の点線まで読み飛ばしても結構 Sheet3に 2008/1/1 お正月 2008/1/2 2008/1/3 2008/1/4 初出勤 2008/1/5 新年得意先訪問 とあって 間違った例 =VLOOKUP(C1,TEXT(Sheet3!$A$1:$B$5,"mmdd"),2,FALSE) のようなこと。第2引数にはTEXT関数などかぶせて使えない。 ヴァーチャルと(私が言うのは)はセルに値を一旦作らないでという 意味です。 ==========- 例データ Sheet2 A1:B5 0101 お正月 0102 0103 0104 初出勤 0105 新年得意先訪問 Sheet1 A1に2008/1/5 本番では=TODAY() A2に =VLOOKUP(TEXT(A1,"mmdd"),Sheet2!$A$1:$B$5,2,FALSE) 結果 A2に 新年得意先訪問
お礼
ありがとうございます。 日付を文字列でと言うのは考えたのですが 私の入力の仕方が悪いのか うまくいかなかったのです。 一度教えていただいた方法で試してみたいと思います。
- mitarashi
- ベストアンサー率59% (574/965)
>A1とシート2ともに年を省き 逆に、A1とシート2共に年を入れるのはいかがでしょうか。 シート2の1月1日は、 ==DATEVALUE(YEAR(NOW()) & "/1/1") で生成し、1月2日以降は、前日のシリアル値に1を加える形に(A1が1月1日なら、A2以降は、=A1+1 という式を入れるという意味) しておけば、2009年に入れば、新しい日付が適用されると思います。未検証ですので、外していたらすみません。
お礼
ありがとうございます。 おっしゃられるとおり、逆の考え方も出来るんですね。 固定すれば私の望んでいた永続的なものができそうです。
お礼
ありがとうございます。 DATE関数って数字をダイレクトに入力することで、固定できるんですね。 勉強不足でした。