このページでは
・二十四節気の略算式
・対象日付から当年の立春を算出する計算式
・対象日付から当月の節入日を算出する計算式
・立春を加味した年を算出する計算式
・対象日付から節月を算出する計算式
を掲載しています。
Excelに入力する際は()を()に変換して入力してください。
二十四節気の略算式
=INT(♤+(♡*(対象日付の年-1900))-INT((対象日付の年-1900)/4))
※対象日付の年は、1~2月のみ対象年から「対象日付の年-1」を指定する。
※♤と♡は二十四節気算出用定数表から代入する。
♤:各節気に対応する定数
♡:各節気に対応する定数
二十四節気算出用定数表
月 | 節気 | ♤ | ♡ | 年補正 |
---|---|---|---|---|
1月 | 小寒 | 6.3811 | 0.242778 | あり |
大寒 | 21.1046 | 0.242765 | あり | |
2月 | 立春 | 4.8693 | 0.242713 | あり |
雨水 | 19.7062 | 0.242627 | あり | |
3月 | 啓蟄 | 6.3968 | 0.242512 | |
春分 | 21.4471 | 0.242377 | ||
4月 | 清明 | 5.628 | 0.242231 | |
穀雨 | 20.9375 | 0.242083 | ||
5月 | 立夏 | 6.3771 | 0.241945 | |
小満 | 21.93 | 0.241825 | ||
6月 | 芒種 | 6.5733 | 0.241731 | |
夏至 | 22.2747 | 0.241669 | ||
7月 | 小暑 | 8.0091 | 0.241642 | |
大暑 | 23.7317 | 0.241654 | ||
8月 | 立秋 | 8.4102 | 0.241703 | |
処暑 | 24.0125 | 0.241786 | ||
9月 | 白露 | 8.5186 | 0.241898 | |
秋分 | 23.8896 | 0.242032 | ||
10月 | 寒露 | 9.1414 | 0.242179 | |
霜降 | 24.2487 | 0.242328 | ||
11月 | 立冬 | 8.2396 | 0.242469 | |
小雪 | 23.1189 | 0.242592 | ||
12月 | 大雪 | 7.9152 | 0.242689 | |
冬至 | 22.6587 | 0.242752 |
対象日付から当年の立春を算出する計算式
=INT(4.8693+(0.242713*(YEAR(対象日付のセル)-1-1900))-INT((YEAR(対象日付のセル)-1-1900)/4))
算出用定数表から立春の定数を
「対象日付から当月の節入日を算出する計算式」に代入した式。
対象日付から当月の節入日を算出する計算式
=IF(MONTH(対象日付のセル)<3,INT(♠︎+(♥*(YEAR(対象日付のセル)-1-1900))-INT((YEAR(対象日付のセル)-1-1900)/4)), INT(♠︎+(♥*(YEAR(対象日付のセル)-1900))-INT((YEAR(A2)-1900)/4)))
♠︎と♥は、別シートで節入日算出用定数表を作成し、
XLOOKUPやVLOOKUPで定数を代入させる。
例えば、XLOOKUPの場合だと、
♠︎=XLOOKUP(MONTH(対象日付のセル),'節入日算出用定数表'!A:A,'節入日算出用定数表'!C:C)
♥=XLOOKUP(MONTH(対象日付のセル),'節入日算出用定数表'!A:A,'節入日算出用定数表'!D:D)
例えば、XLOOKUPの場合だと、
♠︎=VLOOKUP(MONTH(対象日付のセル),'節入日算出用定数表'!A:D,3,FALSE)
♥=VLOOKUP(MONTH(対象日付のセル),'節入日算出用定数表'!A:D,4,FALSE)
節入日算出用定数表
月 | 節気 | ♠︎ | ♥ | 年補正 |
---|---|---|---|---|
1 | 小寒 | 6.3811 | 0.242778 | あり |
2 | 立春 | 4.8693 | 0.242713 | あり |
3 | 啓蟄 | 6.3968 | 0.242512 | |
4 | 清明 | 5.628 | 0.242231 | |
5 | 立夏 | 6.3771 | 0.241945 | |
6 | 芒種 | 6.5733 | 0.241731 | |
7 | 小暑 | 8.0091 | 0.241642 | |
8 | 立秋 | 8.4102 | 0.241703 | |
9 | 白露 | 8.5186 | 0.241898 | |
10 | 寒露 | 9.1414 | 0.242179 | |
11 | 立冬 | 8.2396 | 0.242469 | |
12 | 大雪 | 7.9152 | 0.242689 |
立春を加味した年を算出する計算式
=YEAR(対象日付のセル)-(IF(MONTH(対象日付のセル)<3,IF(MONTH(対象日付のセル)=2,(IF(DAY(対象日付のセル)<INT(4.8693+(0.242713*(YEAR(対象日付のセル)-1-1900))-INT((YEAR(対象日付のセル)-1-1900)/4)),1,0)),1),0))
立春を加味した年は、=YEAR(対象日付のセル)-(1か0)
1か0は、IF(対象日付の当月<3,IF(対象日付の当月=2,IF(対象日付<立春,1,0),1),0)
1か0は、下記の場合分けをする。
・対象日付の当月が3月より後の場合は「0」の値を返す。
・対象日付の当月が2月の場合は、対象日付が立春より前の場合は「1」の値を返し、対象日付が立春より後の場合は「0」の値を返す。
・対象日付の当月が1月の場合は「1」の値を返す。
対象日付から節月を算出する計算式
節月"対象日付が1月で 対象日付が節入日より前だと0となる場合"
=MONTH(対象日付のセル)-(IF(DAY(対象日付のセル)<(IF(MONTH(対象日付のセル)<3,INT(♠︎+(♥*(YEAR(対象日付のセル)-1-1900))-INT((YEAR(対象日付のセル)-1-1900)/4)), INT(♠︎+(♥*(YEAR(対象日付のセル)-1900))-INT((YEAR(対象日付のセル)-1900)/4)))),1,0))
節月"対象日付が1月で 対象日付が節入日より前だと12となる場合"
=IF(MONTH(対象日付のセル)-(IF(DAY(対象日付のセル)<(IF(MONTH(対象日付のセル)<3,INT(♠︎+(♥*(YEAR(対象日付のセル)-1-1900))-INT((YEAR(対象日付のセル)-1-1900)/4)), INT(♠︎+(♥*(YEAR(対象日付のセル)-1900))-INT((YEAR(対象日付のセル)-1900)/4)))),1,0))=0,12,(MONTH(対象日付のセル)-(IF(DAY(対象日付のセル)<(IF(MONTH(対象日付のセル)<3,INT(♠︎+(♥*(YEAR(対象日付のセル)-1-1900))-INT((YEAR(対象日付のセル)-1-1900)/4)), INT(♠︎+(♥*(YEAR(対象日付のセル)-1900))-INT((YEAR(対象日付のセル)-1900)/4)))),1,0))))
節月"対象日付が1月で 対象日付が節入日より前だと0となる場合"は、
=MONTH(対象日付のセル)-(1か0)
節月"対象日付が1月で 対象日付が節入日より前だと12となる場合"は、
=IF(MONTH(対象日付のセル)-(1か0)=0,12,MONTH(対象日付のセル)-(1か0))
1月で 対象日付が節入日より前だと12となる場合は、計算結果が「0」となるため「12」の値を返す。
1か0は、IF(対象日付<節入日,1,0)
1か0は、下記の場合分けをする。
対象日付が節入日より前の場合は「1」の値を返す。
対象日付が節入日より前ではない場合は「0」の値を返す。
節月で月命星を算出する計算式はこちら
<参考文献>
Google スプレッドシートの関数リスト - Google ドキュメント エディタ ヘルプ
IF function - Google Docs Editors Help
INT - Google Docs Editors Help
DAY - Google Docs Editors Help
MONTH - Google Docs Editors Help
YEAR - Google Docs Editors Help