- ベストアンサー
エクセルシート内で六曜及び九星を自動表示する方法
- Excel2007を使用しております。エクセルシート内で日付表示されているセルを元に自動で六曜と九星が表示させる方法がないか探しております。
- エクセル自体の関数ではおそらく無いのかなぁとは自分ながら思っておりますが、何か良い方法はあるか教えていただけると幸いです。
- 行いたいことはシンプルで、例えばセルA1に2010/5/27と表示形式を日付で入力されていれば、セルB1には「大安」、並びにセルC1には「八白土星」というようにセルB1とC1が自動表示されていればベストなのですが。。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
以下は、インターネットで検索して調べたものではありませんし、また、私はワークシート関数を得意として回答しているわけではありませんので、まだ間違いがあるかもしれません。 私の知る範囲ですが、六曜カレンダーは朔(一日=-新月)の日をリストにしておいて、そこから、六曜に割り振るだけのものですから、例えば、このようにします。つまり、六曜カレンダーというのは、朔(新月)を計算することに他なりません。逆に言えば、その計算に定数をおけば、簡単に出来るわけです。(なお、朔から計算している人は、Excelの世界では知りません。朔の決定には天文計算が必要です。)なお、九星のほうは詳しくは調べていません。 以下は、計算は、旧暦の本年度限りです。(レイアウトは一切考慮されていませんまだ改編の余地があります。) **六曜 F G H (1~16) 11 2009/12/16 大安 12 2010/1/15 赤口 1 2010/2/14 先勝 2 2010/3/16 友引 3 2010/4/14 先負 4 2010/5/14 仏滅 5 2010/6/12 大安 6 2010/7/12 赤口 7 2010/8/10 先勝 8 2010/9/8 友引 9 2010/10/8 先負 10 2010/11/6 仏滅 11 2010/12/6 大安 12 2011/1/4 赤口 1 2011/2/2 大安 2 2011/3/5 先負 D E (1~3) 朔の六曜 =VLOOKUP(A1,G1:H16,2,1) 旧暦の月 =INDEX(F1:F16,MATCH(A1,G1:G16,1),1) 旧暦の日 =A1-VLOOKUP(A1,G1:H16,1,1)+1 A1: 6/1 (2010/6/1) B1: =CHOOSE(MOD(MATCH(E1,{"大安","赤口","先勝","友引","先負","仏滅"},0)+E2+4,6)+1,"大安","赤口","先勝","友引","先負","仏滅") ***九星 年家九星 A1: 2010/6/1 B列(1~3) =YEAR(A1) =IF(MONTH(A1)=MATCH(A1,F1:F12,1)-1,MONTH(A1),MONTH(A1)-1) =DAY(A1) C列(1~3) 年家・月家・日家九星 =CHOOSE(IF(10-MOD((B1-10),9)=10,1,10-MOD((B1-10),9)),"一白","二黒","三碧","四緑","五黄","六白","七赤","八白","九紫") =CHOOSE(MOD(10-(MOD(B1-1,3))*3-B2+8,9)+1,"一白","二黒","三碧","四緑","五黄","六白","七赤","八白","九紫") =IF(G1>=A1,CHOOSE(MOD(G1-A1,9)+1,"一白","二黒","三碧","四緑","五黄","六白","七赤","八白","九紫"),IF(G2>=A1,CHOOSE(MOD(G1-A1,9)+1,"九紫","八白","七赤","六白","五黄","四緑","三碧","二黒","一白"),"")) F(1~16) 0 2010/1/5 2010/2/4 2010/3/6 2010/4/5 2010/5/5 2010/6/6 2010/7/7 2010/8/7 2010/9/8 2010/10/8 2010/11/7 2010/12/7 G(1~2) 反転 2010/1/13 2010/7/12
その他の回答 (1)
- nattocurry
- ベストアンサー率31% (587/1853)
六曜に関して言えば、同じようなことを考えている人がたくさんいて、ネット検索をすればいろいろとヒットしますよ。 九星に関しては、わかりませんが。
お礼
ありがとうございました。 無事解決いたしました。
お礼
ご丁寧なご提案頂きまして誠にありがとうございました。 六曜・九星共にWEB上で万年データが見つかり、そのデータを元に関数使用で無事解決いたしました。