エクセル自動カレンダー予定書き込み用を作成ー2「月末を自動切換え」
使用関数:IF、DAY、DATE
2月のカレンダーでは(29)30・31日を、小の月では31日を非表示にし、大の月では表示させるよう数式を使って自動切り替えの設定を行います。使うのはIF関数・DAY関数・DATE関数です。
2月の予定表
関数を使って29・30・31日を自動表示切替

=IF(DAY(DATE($A$1,$A$2,29))=29,29,””)
=IF(DAY(DATE($A$1,$A$2,30))=30,30,””)
=IF(DAY(DATE($A$1,$A$2,31))=31,31,””)
上からA31、A32、A33セルへ入力してください。
IF関数の論理式にDAY関数、そのシリアル値にDATE関数を入れて構成
IF関数は論理の関数で、「もし、この論理通りならこう、違っていたらこう」という指定が行えます。
ここでは、「もし、2016年1月29日が存在したら、日にち欄に29の値を表示する。存在しなかったら、空欄にする」と指定します。
では、まず、「29」の日にちが入る「A31」セルを選択して、
「数式」タブ「関数ライブラリ」の「論理▼」から「IF」をクリックして下さい。
「IF関数の引数」ダイアログボックスが開いたら一番上の「論理式」ボックスにカーソルが点滅していることを確認して、
「名前ボックス▼」(画面の上左端 リボンを挟んで「ファイル」タブの真下にある)からドロップダウンさせた関数名リストの「DAY」をクリックします。
※「DAY」がなかったら、最下部にある「その他の関数」をクリックして「関数の挿入」ダイアログ「関数の分類」を「日付/時刻」にして探して下さい。
新たに「DAY関数の引数」ダイアログボックスが出たら、
もう一度「名前ボックス▼」から、今度は「DATE」をクリックします。
「DATE関数の引数」ダイアログボックスで年・月・日を指定します。
「DATE関数の引数」一番上の「年」にカーソルを置いて、A1セル(西暦の数字が入ったセル)をクリック、「年」ボックスに「A1」と表示されるので、キーボードのF4キーを1度叩いて絶対参照「$A$1」に変更します。 ▶絶対参照について分かりやすく
次は2番目の引数「月」ボックスにカーソルを置いて、A2セル(月の数字が入ったセル)をクリック、「月」ボックスに「A2」と表示されるので、キーボードのF4キーを1度叩いて絶対参照「$A$2」に変更します。
「日」のボックスには半角数字で「29」と入力します。
ここで「OK」は押さず、ダイアログが開いたままの状態で…
数式バー(名前ボックスの右隣)に表示されている数式の「IF」をクリックします。
すると、「IF関数の引数」ダイアログボックスに戻ります。
「論理式」に「DAY(DATE($A$1,$A$2,29))」という数式が入っていますね?
この式を噛み砕いた文章で言うと、「DATE関数でシリアル値(2016/1/29)を取得し、DAY関数でそのシリアル値(2016/1/29)から日にちの数字を取り出しました」になります。
でも、この文章にはIF関数が求める「論理式」=「もし、~なら」が欠落しています。だから、何をどーしたいの?って感じ。
そこで、IF関数が求める論理を組み立てます。
「DAY(DATE($A$1,$A$2,29))」の末尾にカーソルを置き「=29」を加えます。
「DAY(DATE($A$1,$A$2,29))=29」という論理式は「DATE関数でシリアル値(2016/1/29)を取得し、DAY関数でシリアル値(2016/1/29)から取り出した日にちの数字が、29なら…」という意味になります。
もう少し詳細に言うと「シリアル値(2016/1/29)が正しい値なら「29」という数字が返されるはず。…で、もし、ちゃんと「29」が返されていたら…」というIF文になるわけです。
その答えが「真の場合=肯定=29が返されてます」なら「29」と数字を表示、
「偽の場合=否定=この年月日は存在しません」なら「空欄=””」と設定します。
これで数式は完全なものになったので、「OK」します。
最終的な式は「=IF(DAY(DATE($A$1,$A$2,29))=29,29,””)」です。
「DATE関数でシリアル値(2016/1/29)を取得し、DAY関数でそのシリアル値(2016/1/29)から取り出した日にちの数字が、もし「29」なら、「29」と表示。違っていたら、「空欄」のまま」
この数式の入ったA31セルをA33セルまでフィルコピーし、A32セルの数式の29を30に、A33セルの数式の29を31に変えます。(それぞれ数式バーをダブルクリックして編集モードにして修正して下さい)
データの入力規則で月の数字をリスト化する
月の数字の入った「A2」セルを選択し、「データ」タブの「データの入力規則」ボタンをクリックします。
「入力値の種類」で「リスト」を選択、「元の値」に「1,2,3,4,5,6,7,8,9,10,11,12」と入力して「OK」します。数字は半角カンマで区切って下さい。
A2セルをクリックすると「▼」が現れ、そこからドロップダウンリストで月が選べるようになります。
試しに、2月や小の月を選んで、29日・30日・31日の表示非表示が適正にスイッチされるかどうか確認してみて下さい。