Registered at Nov 23 2008
Excel孫の手−115
「月末表示はおまかせ-1」
Q.毎年、10月の声を聞くと、あの出来事が思い出されて・・・。
A.おや、頭を抱えて・・、忌まわしい出来事でもあったんですか。
Q.よくぞ、聞いてくれました。
カレンダーなんです、その出来事というのは。
A.ははあ、ひょっとして月末表示が上手く出来なかったんじゃー。
Q.そっ、その通り、
西向く侍→二、四、六、九、士 と、しっかり分かっていたのに、自作の
カレンダーでは11月が31日までになってしまって、お得意さまに配っ
てから指摘されて・・・。
A.そりゃちょっとどころではない大チョンボですね。
でも、EXCELでカレンダーを作っている人は、大概一度はぶつかるん
ですね、この問題は。
でも、この問題はあまりにポピュラーなので、凄く美しく解決する方式が
沢山発表されています。その中でも、へぇーと言うのをご紹介します。
使う関数の主役は、 DAY 脇役は、 DATE です。
まず、DATE関数から行きましょう。
=DATE(年,月,日) と言う書式を使います。
例えば、=DATE(2006,8,12) と入力すると、そのセルには、2006/8/12
と表示されます。
Q.それっていったいどういう・・・・・・。
A.そう、私も最初そう思いました。
ここで、カレンダーを作るときの手順を思い浮かべてみてください。
だいたい、表の左上に 2009年2月 等と入力して、あとは、下に向かっ
て、下に向かって、1・2・3・4・・・・・・27・28 と日付を入れます。
ここで、月末が不定なのは、29日 30日 31日の三日間だけです。
29日を考えて見ましょう。
29日のセルには、=DATE(2009,8,29)という式を入れます。
このままでは、このセルに年月日が表示されてしまいます。
そこで、DAY関数を使うんです。
=DAY(DATE(2009,8,29)) という式にすると、2009/8/29の日の部分、
即ち、29 が表示されます。
仮に、セル B1 に、2009年 セル C1 に、2月 と入っていると
しましょう。すると、29日が表示されるべきセルには、何と 1 と表示さ
れてしまいました。
2009年は閏年ではありませんから、2月は28日でおしまいです。と言う
ことで、3月1日になってしまうのです。
となると、月が変わったことが検出されたら、表示をしないようにような仕掛
けを組み込んであげましょう。
そうすれば、正しい表示のカレンダーが完成します。
Q.長い説明でしたね。
表示しないようにする仕掛けの前まで、おさらいします。
最終形は、次回に回して貰えませんか。
A.だと思いましたよ。煮詰まった顔してますもん!!
では、・・・・。
Return to TOP