Excel。
月末28~31日に対応して日付を自動表示するカレンダー
その1
ユーザー定義書式+TEXT関数+条件付き書式
Excel。毎月のスケジュール管理などで、良く作るカレンダー類。
そこで、いつも面倒なのが、
月末が28日なのか29日なのか30日なのか31日なのかによって、
数式やら文字やらを削除する。あるいは、文字を白で塗るなんてことも…
そこで、今回は、自動的に判断して、翌月になったら空白にするカレンダーを作ってみましょう。
A2に2013を B2に9を入力します。このA2とB2にそれぞれ、年と月を入力したら、
自動的に日付に曜日も変わるカレンダーをつくっていきます。
まずは、A2とB2の表示形式を変更していきます。
2013と入力したA2をクリックして、
セルの書式設定ダイアログボックスを表示して表示形式のユーザー定義を選択します。
種類のボックスに、G/標準と表示されていますので、その後ろにカーソルをいれて、
”年”と入力します。
そしてOKボタンをクリックすると、
2013年とA2が表示されます。普通に2013年と入力してしまうと、
文字になってしまい、数字として使用することができませんので、
ユーザー定義書式というテクニックをよく使いますので、覚えておくといいかと。
同じように、B2をクリックして、9月と表示するように、
G/標準の後ろに”月”を入力して、9月と表示されることを確認しましょう。
続いて、日付を作っていきます。
A4に日付。B4に曜日と入力して、A5にDATE関数で日付を作成していきましょう。
A5をクリックして、DATE関数のダイアログボックスを表示します。
年には、A2を入力します。
月には、B2を入力します。
日には、1を入力します。
OKボタンをクリックすると、9月1日と表示されます。
最初は当然1日なので、日には、1を入力しております。
年と月はセル番地を参照していますので、そのセルを替えることによって、
自動的にその年月の1日を作ることができます。
つづいて、A6をクリックして、=A5+1と入力します。
それによって、A5の翌日、つまり9月2日を作ることが出来ます。
オートフィルを使って、A35までコピーしましょう。
A35には、10月1日と表示されますが、
これは後程、表示されないようにアレンジしますので、そのままにしておきます。
次は、曜日を作っていきます。これは、以前紹介しました、TEXT関数を使います。
B5をクリックして、TEXT関数のダイアログボックスを表示します。
値には、A5を入力します。
表示形式は、”aaa”と入力します。
OKボタンをクリックすると、曜日が表示されますので、
オートフィルで連続コピーをして、B35まで算出しましょう。
このように、なりますね。
さて、本題はこれから、このままだと、10月1日が表示されてしまっていますね。
別にこれでも構わないのですが、やはり、9月は9月にしたい訳でして。
そこで、どうしたらいいのかを考えてみましょう。
問題になるのが28日以降ですね。
28日までは、上のセル+1でいいのですが、29~31日は月によって変わるわけですね。
なので、対象となるセルは、A33:A35までとなります。
さて、どのように判断させたらいいでしょうか?
注目すべきは月が替わるかどうか、すなわち、月が同じか、それより大きいのか?
を判断させればいいというのがわかります。
なので、A33は、
「もし、A33の月は、A32の月と比べて、大きければ、空白。そうでなければ、+1」する数式を
作ってあげればいいわけですね。
それでは、29日が入っている、A33をクリックして、数式を削除して、
IF関数のダイアログボックスを表示しましょう。
論理式は、月を比べる数式になりますので、MONTH関数をネストしていきます。
それでは、論理式のボックスをクリックして、MONTH関数のダイアログボックスを表示しましょう。
シリアル値は、A32+1と入力します。
これでまず、A32の翌日の月を算出することができます。
IF関数にいったん戻りますので、数式バーのIFをクリックして、
IF関数のダイアログボックスに戻りましょう。
論理式は、=IF(MONTH(A32+1)となっていますので、
>を入力した後に、再度、MONTH関数のダイアログボックスを挿入します。
今度は、A32とシリアル値に入力して、IF関数のダイアログボックスに戻りましょう。
これで、論理式は完成です。
論理式は、MONTH(A32+1>MONTH(A32)
真の場合は、””
偽の場合は、A32+1
と入力してOKボタンをクリックしましょう。
この数式をオートフィルで、A35まで連続コピーしてみましょう。
そうすると、10月1日が表示されずに、空白になりましたね。
これで、翌月になった場合は、空白にすることが出来たと思いきや、
B2の9月を2月に変更してみましょう…。
残念ながら…。
ここから先は、その2で書きたいと思います。