とうとう完成しました。干支カレンダー。
年月日だけですけど。
でも、節入り日を自動計算できるので、基本的にはこれが世の干支プログラムの基本かと思います。
まずは生年月日を西暦で入力してもらいます。
すると、下の命式(三柱)が出るという仕組みです。
一応、タブとして、メインは「命式」というタブ、あと、見えないように、「二十四節気 略算式」のタブ、

そして「干支」のタブがあります。

2つ目と3つ目のタブを、1つ目のタブから参照します。
あとはうまいことMOD関数などを使ってやるだけです。
気を付けるべきは、エクセルのDATE()という関数において、年の引数は1900年以降じゃないとだめであること。あと4桁で入れることでしょうか。
1864年って、立春を超えると、年干支が甲子になるんですよね。
だからそこから数えて何年目かを基準にしてます。
多分も一つ重要なポイントは、日干支でしょうか。
生年月日が甲子の日から何日目かを出してます。
これを出すにあたって、まぁ結局1864年のたとえば立春から何日経っているか、みたいなことを出す必要があるわけです。
でも、前述のように、エクセルは1900年以降でしょ。
だからDATE関数は生まれた年の1月1日から何日かの算出だけに使います。
あとはそこにプラス何年換算したらどのくらい日干支がずれるかという話です。
1年は365日ですよね。でもうるう年もありますから、ざっくりいうと365.25日といえます。
なので、4年ごとにプラス1日干支がずれることと、365って10で割ると余り5だから5日干支がずれること、この2つのことを考えて式を書けばいいのです。
甲日が何日前かを出す式だけお示しすると、次の通りです。

ROUND関数は整数に丸める関数です。INT関数は切り捨てですけど、ROUND関数は四捨五入のようです。
0.5とかぎりぎりのところの処理が気になるので、試しに計算してみると、

となりました。まぁ、多少干支を調整したんで、一応周期的に出力しているからよしとしますか。
別にINTで調整してもよかったような気もしますが。。。
とにかく、細かいことは抜きにして、僕的にはちゃんと動くエクセルの命式プログラムが年月日でできたので、満足です♪
コメント