エクセルでカレンダーを作成しようと調べていたら九星のこともあったので調べてみました。
また、エクセルで九星が日付を入力すると自動表示される方法を考えていましたが、なんとか完成ししたので紹介したいと思います。
その前に九星の意味も調べてみました。
九星とは、古代中国から伝わる占いの一種です。
九星には、一白水星、二黒土星、三碧木星、四録木星、五黄土星、六白金星、七赤金星、八白土星、九紫火星がありそれぞれいろいろな意味があるようです。
簡単意味は
一白水星:進化、生物が冬眠に入っている状態
二黒土星:調整、天の恵みを受け生育する状態
三碧木星:勇気、気候は春、新しいことに心はずませる状態
四録木星:愛、草木が青々と茂る状態
五黄土星:悟、草木が満開の状態
六白金星:創造、季節は秋、冬に備える状態
七赤金星:信念、実りの秋
八白土星:希望、冬から春に向かう時期
九紫火星:純粋、太陽が南に登った状態
九星には年家九星、月家九星、日家九星があります。
基本的な九星の占い方
自分の本命星を生年月日から求めます。
年家九星がそれになります。
例えば1990年1月1日生まれだと本命星は二黒土星になります。
自分の本命星はネットで「九星計算」と検索しページを開いて(どこでもいいです。)自分の誕生日を入力すれば簡単に調べることができます。
またはエクセルで作成した「九星計算」をダウンロードして使って下さい。
【九星計算】(zip)クリックするとダウンロードします。
バージョン:エクセル2010
本命星を元に九星盤を見て占います。
基本の九星版
九星のそれぞれの九星盤
本命星は二黒土星で今月の九星が一白水星の場合
2がある方角は北西になります。
基本の九星盤を見ると北西は6になっています。
6の性質を見て今月の行動を占います。
大ざっぱな説明ですがこんな感じです。
ここでは詳しくは書きません。
エクセルで九星の求め方
年、月の九星
年と月の九星の求め方はこちらで詳しく説明しています。
日家九星の求め方
日家九星の求め方にはルールがあります。
2.冬至に最も近い甲子の日を一白として陽遁を初め、夏至の最も近い甲子の日を九紫として陰遁を始める。
3.干支は修正ユリウス通日に50を足して60で割った余りで求める。余りが0なら甲子~59なら癸亥になる。
4.2で求めた日付の間隔が180日なら陽遁陰遁を繰り返す。
5.2で求めた日付の間隔 240日なら後半の60日が閏九星になる。
6.閏の前半30日は前の遁から続き(陽遁なら陽遁、陰遁なら陰遁)、後半30日は逆になる。
7.閏の切り替えは、夏は三碧、冬は七赤で切り替わる。
※こよみのページのルールを使わせて頂きました。
http://koyomi8.com/sub/9sei.htm
ルール1
冬至と夏至を4年分求めます。
セルA1に日付を入力します。
セルB2「=YEAR(A1)」
月は決まっているのでそのまま数字を入力。
日の数式「=INT(B4+(C4*(($B2-2)-1900))-INT((($B2-2)-1900)/4))」
日付の数式「=DATE($B2-2,D4,E4)」
九星の一覧表を作ります。数字は9で割った時の余りの数字です。
ルール3
一昨年の冬至から来年の冬至と夏至の日付を持ってきて修正ユリウス通日と日干支を求めます。
日付セルB15「=F5」
年セルC15「=YEAR(B15)」
月セルD15「=MONTH(B15)」
日セルE15「=DAY(B15)」
修正ユリウス通日セルF15「=INT(365.25*(C15))+INT((C15)/400)-INT((C15)/100)+INT(30.59*(D15-2))+E15-678912」
日干支セルG15「=MOD(F15+50,60)」
干支セルH15「=VLOOKUP(G15,干支!$A$2:$B$61,2,FALSE)」
ルール2
干支の続きです。
<30セルJ15「=B15-G15」
※干支の数字(セルG15)が30より小さい時は冬至夏至の日付から引きます。
>29セルK15「=B15+(60-G15)」
※干支の数字(セルG15)が29より多きときは冬至夏至の日付から(60から干支の数字を引いたも)のを引きます。
ルール4、5
セルL15「=IF(G15<30,J15,K15)」
※干支の数字によってどちらか選ぶ数式です。
間隔セルM16「=L16-L15」
※列Lの日付間の日数です。
切り替え日セルN16「=IF(M16=240,L16-30,L16)」
※日付の間隔が240日なら列Lの日付から30日前の日に設定。
ルール2、4、5、6、7
セルO16「=IF(M16=240,2,8)」
※日付の間隔が240日なら2にして180日なら8にするという数式です。
2と8の数字は九星一覧表の数字を表しています。
行16は夏至なので切り替えの始まりは通常で九紫で閏になると三碧で隠遁(9から1に下がっていく)を始めます。
セルO17「=IF(M17=240,6,0)」
冬至なので間隔が180日の時は0(一白)から陽遁、240日の場合は6(七赤)から陽遁を始めます。
次の式です。
セルQ16「=IF(A1<N17,N16,IF(A1<N18,N17,IF(A1<N19,N18,IF(A1<N20,N19,))))」
※九星を求める日付の前の切り替え日を選んでいます。
セルR16「=A1-Q16」
※九星を求める日付と切り替え日との間の日数です。
セルS16「=IF(Q16=N16,O16,IF(Q16=N17,O17,IF(Q16=N18,O18,IF(Q16=N19,O19,))))」
※切り替え日(セルQ16)と切り替え日(列N)の日付が一致する九星の数字(列O)を持ってきています。
セルT16「=IF(Q16=N16,S16-R16,IF(Q16=N17,S16+R16,IF(Q16=N18,S16-R16,IF(Q16=N19,S16+R16,))))」
※ここで切り替え日の始まりの九星から何日目かを求めています。
セルU16「=MOD(T16,9)」
※上記の日数を9で割った余りです。
セルV16「=VLOOKUP(U16,I3:J11,2,FALSE)」
※余りから九星を求めます。
完成品はこちらでダウンロードできます。【九星計算】(zip)クリックするとダウンロードします。
別な求め方
日家九星を求める別なやり方を紹介します。
この方法は期間が限定されます。
修正ユリウス通日から求める方法です。
考え方は、日家九星は通常日では甲子(0)から一白水星が始まって干支の60個を3回繰り返し次に逆に九紫火星から干支の60個を3回繰り返します。
このサイクルを360日を1サイクルと考えます。
閏九星は調整します。
そうやって作成したのが次になります。
切り替え日(列A)は1サイクル360日の初めの日と閏の最初の日、閏の切り替え日の日付です。
列(B~F)は修正ユルウス通日の求めるための数値です。
列(H)は切り替え日の初めの九星を出すための数字です。
列(I)の数式「=IF(MOD($G3-H3,360)>179,((MOD($G3-H3,360))-((MOD($G3-H3,360))-179)-(((MOD($G3-H3,360))-179)-1)),MOD($G3-H3,360))」
※修正ユリウス通日を360で割り余りが179より大きければ数字が下がる式になっています。
例えば、修正ユリウス通日を360で割り余りが0~179まではそのままの数字ですが180は179、181は178というように数字が下がります。修正ユリウス通日を360で割り余りが359は1になります。
列Jは列Iを9で割り余りを出しています。
列Kは列Jで求めた余りの数字から九星を表示しています。
行17で九星を求める日付をもってきています。
セルH17の数式「=IF(A17<A4,H3,IF(A17<A5,H4,IF(A17<A6,H5,IF(A17<A7,H6,IF(A17<A8,H7,IF(A17<A9,H8,IF(A17<A10,H9,IF(A17<A11,H10,IF(A17<A12,H11,IF(A17<A13,H12,IF(A17<A14,H13,IF(A17<A15,H14,H15))))))))))))」
※上の一覧から求める日付より前の日付の列Hを持ってくる数式です。
画像では2016/1/26の前の日は列Aでは「2009/1/19」です。その行にある列Hが130です。
セルI17の数式「=IF(MOD($G17-H17,360)>179,((MOD(G17-H17,360))-((MOD(G17-H17,360))-179)-(((MOD(G17-H17,360))-179)-1)),MOD(G17-H17,360))」
画像の実際の数字で式にすると「(57413-130)÷360の余り=43」です。
それをさらに9で割ったあまりがセルJ17の7です。
まとめ
日家九星をエクセルで求める方法を2種類紹介しましたが、初めに紹介した方が期間が限定されないので長期間調べるには良いかもしれません。
後の方法は短期間なら比較的早くつくることができます。
閏の年を調べるのは初めに紹介した方法で調べることができます。
冬至と夏至の日を求め、切り替え日を求め、その間の日数を求め、240日あるところが閏が入るところです。
しかし修正ユリウス通日から切り替え日の初めをだす数(画像では列H)が不定期なのでこれを求めるのが大変です。
以上の方法が参考になればうれしいです。