エクセルで万年カレンダーの作成を調べましたがあってもほとんど祝日くらいまでです。
そこで旧暦や六曜、二十四節気、雑節を含む万年カレンダーを作成しました。
(範囲は2010年~2050年までです。)
その手順を紹介します。
用意するもの
旧暦と六曜一覧
祝日一覧
二十四節気計算表
雑節一覧
旧暦は、計算がかなり難しいので一覧表を作りました。
六曜は、旧暦があれば計算できます。
旧暦の月と日を足して6で割った余りで出します。
余りが0=大安、1=赤口、2=先勝、3=友引、4=先負、5=仏滅
祝日一覧はネットで探せばあります。
二十四節気計算は略算式で計算します。
二十四節気の略算式
http://addinbox.sakura.ne.jp/sekki24_topic.htm
を利用させていただきました。
雑節一覧は、調べて作成しました。
練習用シートを用意しました。(範囲2010年~2050年)
バージョンExcel2021
【練習用シート】ダウンロード(zip) 【シート説明】
はじめに
旧暦と六曜一覧、祝日一覧、二十四節気計算表、雑節一覧を
エクセルのシートにそれぞれを置きます。
作り方
万年カレンダーシートに作ります。
①年と月を入れる
年のところに数字を入力した時に○○○○年と表示させる方法→こちら(別ウインドウで開きます)
■当月の年と月を自動にしたい場合は
年のところ
=YEAR(TODAY())
月のところ
=MONTH(TODAY())
⇩ ⇩ ⇩ ⇩
②1行開けて曜日を入れる
曜日を簡単に入力する方法→こちら
③4行目に1~7の数字をいれる
④H5から0、7、14、21、28、35を入れる
⑤セルA5に「=FLOOR(DATE($A$1,$B$1,0),7)+A$4+$H5」と入力する
■FLOOR関数
「基準値の倍数に最も近い値で切り捨てする」関数
=FLOOR(数値,基準値)
■DATE関数
DATE関数は日付を求めることができます。
=DATE(年,月,日)
日=0(ゼロ)にすると前月末日の日付になります。
■「=FLOOR(DATE($A$1,$B$1,0),7)+A$4+$H5」
DATE($A$1,$B$1,0)
○○年○○月0(ゼロ)日=前月末の日付
FLOOR関数で前月末の日付のシリアル値を7で割り、余りを切り捨てる
すると先週の土曜日の日付になる。
+A$4
4行の数字を足すと
+1が日曜日
+2が月曜日
+3が火曜日
+4が水曜日
+5が木曜日
+6が金曜日
+7が土曜日
となる。
+$H5
列Hで各週ごとに+7日している。
1週目は+0日
2週目は+7日
3週目は+14日
4週目は+21日
5週目は+28日
6週目は+35日
書式設定を日付に変更
右クリック→セルの書式設定
ユーザー定義→種類を「d」に変える→OK
A5からG10までコピー貼り付けする【やり方】
【曜日を月曜スタートにする場合】
4行目に2~7の数字を入れ、日曜日には1を入れる。
月曜日から土曜日まで
セルA5に「=FLOOR(DATE($A$1,$B$1,0),7)+A$4+$H5」と入力する
セルA5~F10までA5をコピー貼り付け
日曜日の列には
セルG5に「=FLOOR(DATE($A$1,$B$1,0),7)+G$4+$H5+7」と「+7」を付け足す。
セルG6~G10までG5をコピーし貼り付け
⑥A2に「=MONTH(A5)」と入力してG2までコピー、貼り付け
⑦A11に「=MONTH(A9)」と入力してG12までコピー、貼り付け
※ここまでで年と月を変えれば日が変わります。
試に年と月を変えてみてください。
ちゃんと変わればここまでは成功です。
次に進んでください。
見た目を整える(レイアウト)
■表の間隔を文字幅に合わせます。【やり方】
■文字の大きさを少し調整します。【やり方】
年と月を選択して文字サイズを20
曜日を選択して文字サイズを18
日付を選択して文字サイズを20
■日曜日の列を赤字、土曜日の列を青字にします。【やり方】
六曜、旧暦、祝日、二十四節気、雑節を挿入するスペースを開ける。
列に一列づつ、行の日付の下に三行づつスペースを開ける
ついでに年と月調整しておきます。
月の1を切り取りしてセルD1に貼り付け(コピーではない)
年をセルA1からA3までセルの結合、月をセルD1とD2をセルの結合します。
年と月が表示されるようにします。
スペースを開けた行の高さを18ピクセルにします。
VLOOKUP
六曜の挿入
B5(日付の右側)に六曜を挿入します。
数式「=”旧暦”&(VLOOKUP(B5,旧暦!$A$1:$B$18629,2,FALSE))」
B5をクリックして「関数の挿入」ボタンをクリック
「関数の挿入」ダイアログボックスが開きます。
こういったウインドウを「ダイアログボックス」といいます。
開いた時は「最近使用した関数」になっています。
ここに「VLOOKUP」がなければ
「すべて表示」に変えます。
「VLOOKUP」をクリック
「関数の引数」ダイアログボックスが開きます。
検索値・・・○○日に対する項目を挿入したい場合の○○日
例えば、
12月27日に対する六曜を入れたいので検索値は「12月27日(カレンダーでは27)」になります。
ダイアロボックを開いた状態で27(A5)をクリックする。
27はセル「A5」なので「関数の挿入」ダイアログボックスにはA5と表示されます。
範囲・・・挿入したいデーターの範囲
範囲の数式ボックスをクリックして「旧暦」タブをクリック
2行目から1番下までドラッグして範囲指定します。
範囲の数式ボックスに「旧暦!A2:G18629」と表示されます。
「$」を付け足し「旧暦!$A$2:$G$18629」にします。
【「$]を入れる意味】
列番号・・・範囲指定した表で挿入する文字が左から何列目の何
範囲指定した表で六曜は左から6列目にあるので「6」と入力
赤丸のところに六曜が表示されていれば成功です。
検索方法・・・TRUE(近似一致)かFALSE(完全一致)を入力します。
ここでは後でします。
「OK」ボタン
文字の大きさを「10」に色を「自動」変え、下揃えにします。
数式にFALSE(完全一致)を付け足します。
数式バーの数式の最後の「)」の前をクリック。
「6」と「)」の間に「,(半角コンマ)」を入れる
「FALSE-完全一致」をダブルクリック
「Emter」キー
日付の右側に全てコピー貼り付け
これで六曜の挿入は完了です。
次は祝日の挿入です。次へ
質問でもよろしいでしょうか。
日曜スタートのカレンダーを月日曜スタートのカレンダーにしたいのですが、
どうすれば良いか解りませんでした・・・
初歩的な質問で申し訳無いのですが、宜しくご教授願います。
遅くなってすみません。
月曜日スタートするには
初めの曜日の下の行(4行目)に数字を1~7の数字を入れます。
そこを頭(セルA4)を2から始め日曜日の下を1にすればできます。
ヨコレス失礼いたします。
カレンダーづくり、とても参考になっています。こんなに丁寧にUPしていただき、ありがとうございます。感謝いたします。
一つ教えていただきたいのですが、上記のように月曜スタートにする際に、4行目の数字を動かすと、日曜日の部分が1週間遅れて表示されてしまいますが、これを直す方法はございますでしょうか?
お手すきの際に、教えていただけると幸いです。
返事遅くなってすみません。
日曜の列のみ+7としてください。
セルG5「=FLOOR(DATE($A$1,$B$1,0),7)+G$4+$H5+7」
前回の時に足らなくてすみませんでした。
ご回答いただきありがとうございます。
できました!
助かりました🎵
質問でもよろしいでしょうか。
月齢カレンダーのD列の数式を参考に打ち込みましたが、下弦の表示が出てこないのはなぜでしょうか。
2020年を作成すると9月から十三夜がたくさん表示されて、11月に#REFになります。
年が変わると数式も変化するのでしょうか。
大変遅くなってすみません。
言い訳になりますが、暫くサイトを放置しておりました。
先日(2019/9/18)、開いてご指摘があり急いで調べて見ました。
確かに紹介している数式では、おっしゃるようにエラーが発生しました。
調べて見るとMATCH関数は、順番に数字が並んでないとうまく抽出できないバグがあることが分かりました。
そこで数式を次のように変更しました。
数式(セルD44)
【=IF(C44=(SMALL($C$44:$C$74,1)),”新月”,IF(E44=(SMALL($E$44:$E$74,1)),”三日月”,IF(C44=(SMALL($C$44:$C$74,COUNTIF($C$44:$C$74,”<=90")+1)),"上弦",IF(C44=(INDEX($C$44:$C$74,MATCH(MIN(ABS($C$44:$C$73-155)),ABS($C$44:$C$73-155),0))),"十三夜",IF(C44=(INDEX($C$44:$C$74,MATCH(MIN(ABS($C$44:$C$73-167)),ABS($C$44:$C$73-167),0))),"十四夜",IF(C44=(SMALL($C$44:$C$74,COUNTIF($C$44:$C$74,"<=180")+1)),"満月",IF(C44=(INDEX($C$44:$C$74,MATCH(180,$C$44:$C$74)+2)),"十六夜",IF(C44=(INDEX($C$44:$C$74,MATCH(MIN(ABS($C$44:$C$73-205)),ABS($C$44:$C$73-205),0))),"十七夜",IF(C44=(INDEX($C$44:$C$74,MATCH(MIN(ABS($C$44:$C$73-220)),ABS($C$44:$C$73-220),0))),"十八夜",IF(AND(C43<270,C44>=270),"下弦",IF(F44=(INDEX($C$44:$C$74,MATCH(MIN(ABS($C$44:$C$73-320)),ABS($C$44:$C$73-320),0))),"二十六夜",IF(C44=(INDEX($C$44:$C$74,MATCH(MIN(ABS($C$44:$C$73-350)),ABS($C$44:$C$73-350),0))),"晦日",""))))))))))))】
※カーソルを一番後ろに持っていきCtrl+shiftキーを押しながらEnterキーを押して下さい。
参考になれば幸いです。
【追記(2020/7/29】
下弦が間違っていたので訂正しました。
また、不具合あればコメントしていただければ嬉しいです。
ありがとうございました。
こんにちは。
2020年以降の旧暦(六曜)シートはダウンロードできないのでしょうか?
大変遅くなりごめんなさい。
万年カレンダーをクリックしてください。
2050年までの万年カレンダー(エクセル)がダウンロードされます。
その中に2050年までの旧暦シートがあります。