2025年・・・
ここでは、動的なカレンダーの作成方法について、お伝えします。
では、このカレンダーの手順を解説していきます。
紹介記事の人物
橋本 由夏(はしもと ゆか)
Excelの作家(主に、フリーランスとして活動しています。)
著書:Excel厳選テクニック本を出版コチラから購入出来ます。
職 業:Excel作家、ExcelのYouTuber、Excel・Wordの講演
出身地:熊本県
趣 味:Excelでどれだけ時短して、早く仕事が終わるかを追求する
経 歴:民間、パソコンインストラクター、公的機関で勤務経験あり
2025年|動的カレンダー作成方法
コチラは、動的なカレンダーを作成するシートをあらかじめ作成しておきます。
A1とA2に年と月を入力しています。そして、B2セルに月のプルダウンリストを作成していきます。
概要ランの、URLからダウンロードできますので、ご確認ください。
ココに、2025年と入力すると、2025年のカレンダーが出てくるような仕組みを作成します。
又、月のプルダウンリストを作成していきます。
プルダウンリストの作成
別シートに月のシートを作成します。
【B2】セルをアクティブセルにして【データ】タブから【データの入力規則】から、【データの入力規則】ダイアルボックスを表示して、【設定】タブの【入力値の種類】を【リスト】にして、【元の値】に、月のシートの【1月~12月】を選択して、OKボタンを押します。
すると、この様な、プルダウンリストが作成されます。
タイトルを付ける
年と月を指定して、このカレンダーを自動的に更新していきます。ココでカレンダーの名前を関数で入力していきます。
カレンダーのタイトルも自動的に更新できる様に行っていきます。
上記の様な関数を入れると、年と月が連動します。フォントの大きさや、色を変えておきましょう。
この様な形です。
範囲を選択して、キーボードの【Ctrl】+【1】を押します。
【セルの書式設定】ダイアルボックスから【配置】タブをクリックして、【横位置】は【選択範囲内で中央】を選択して、OKボタンを押します。
すると、カレンダーが中央によります。
表示形式を変更する
全ての日付を取得する前に、このカレンダーを自動化するには、2つの事が必要です。
まずは、1月・2月と月の書式設定を削除します。具体的には、【MUCH関数】を使用します。検索値と一致する、位置の数値を表すので、
この様な、関数を入力します。月が1月の場合、1が返され、2月の場合は、2が返されという形です。
次は、選択する、月の1日が、何曜日になるか?を調べます。
例えば、2025年4月の初月が、何曜日になるか?を知る必要があります。その場合の数式を作ります。関数は、weekday関数を使用します。
weekday関数の中にシリアル値を入れます。ココでは、特定の日付を表す連続したシリアル値を返す、【DATE】関数を使用します。
初日が何曜日になるか?関数で計算
年は、【B1】セル、月は、あらかじめ、月のナンバーを計算済みですので、【M4】セルを指定します。
日は、始まりの日なので【1】を入力します。又、戻り値を指定する必要があります。
月曜日から、始まっているカレンダーなので、数値1を月曜、数値7を日曜とします。
すると、2025年4月の始まりの月は、火曜から始まるという事が分かります。
この月のナンバーと、始まりの月を求めたので、指定した月を求める為に、数式を使用します。
SEQUENCE関数を使用する
SEQUENCE関数は、1から始まる一連の数値を求めてくれます。
コチラのカレンダーは、6列7行あります。
SEQUENCE関数に行数と列数を入れます。
【ENTER】キーを押すと、一連の数字が入力出来たのが分かります。1~42までです。これから、月の最初の日付をSEQUENCE関数に追加します。そこで、DATE関数を使用します。
DATE関数
DATE関数に【年、月、日】を入力します。日は1日から始まるので、1と入力して、この日付関数は、選択した月の最初の日付を返します。
【Enter】キーを押すと、数式を入れた箇所は、日付になっていますが、それ以外は、シリアル値で表示されています。
セルを日付形式にします。
キーボードの【Ctrl】+【1】を押して、【セルの書式設定】ダイアルボックスを表示します。
次に、【表示形式】タブから【ユーザー定義】から【種類】を【d】と入力し、OKボタンを押します。
すると、この様に、日付形式になります。次に数式を利用して、平日の日付形式を減算します。
平日の日付形式の減算
この様に、始まりの月を引き算します。
そうすると、正しいカレンダーが、作成されます。プルダウンリストで、月を変更すると、月に合わせてカレンダーが変更されます。
前月の、日付や、来月の日付を非表示
次に、前月の、日付や、来月の日付を表示したくないので、数式を使用して、これらを空白にしていきます。
IF条件とMONTH関数を追加して、指定された日付の番号が、月の番号を等しいか?確認します。
又、日付全体と、SEQUENCE関数から曜日を引いたモノを単純に取得することとなります。それ以外の場合は、空白にします。
【エンター】キーを押すと、日付を除く全ての日付が削除されます。プルダウンリストでも確認してみましょう。
したの1行は多かったので、削除します。
数式も変更しておいきます。そして、土日をハイライトします。
祝日のハイライト
祝日は、条件付き書式を使ってハイライトします。
あらかじめ、別のシートのB列に祝日の日付を付けておきます。ここでは、VLOOKUP関数を使用します。
この様な、関数を挿入しましたが、エラーになります。そこで、ISNUMBER 関数を使用します。
ISNUMBER 関数は引数に指定した値が数値かどうかを確認します。 引数に指定した値が数値だった場合 TRUE を返し、数値以外だった場合は FALSE を返します。
この様に、関数を追加して、エンターキーを押すと
FALSEとなります。この式を使って、条件付き書式を設定していきます。
【ホーム】タブから条件付き書式をクリックして【数式を使用して、書式設定するセルを決定】の数式に先ほどの数式を貼り付け、【書式】の色を変えます。OKボタンを押すと、
この様に、祭日の色が変わります。
M列は、見た目は必要ないので、非表示にしておきましょう。これで月のカレンダーが作成されます。
後は、文字の大きさや、フォントを変えると分かりやすくなります。
まとめ
ここでは、動的なカレンダーの作成方法について、お伝えしました。何かご質問などありましたら、お気軽にメッセージください★
コメント