このサイトでは干支早見表を作成する方法をご紹介したことがありますが、
「西暦から干支を求めたいのですが・・・?」
「西暦の年から干支を表示するにはどうしたらいいのでしょうか?」
というご質問をいただくことがあります。
日付から曜日を表示するには関数を使う必要はありませんが、西暦年から干支を表示するには関数を使わなければなりません。
※A2セルに西暦年が入力されているときにB2セルに干支を表示する例
「=CHOOSE(MOD(A2,12)+1,"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未")」
という数式をB2セルに入力する
干支は「12」で割り切れる西暦の年が申年で、以後
酉
戌
亥
子
丑
寅
卯
辰
巳
午
未
と続きます。
このとき西暦年を「12」で割った余りに注目すると、
申年 = 余り「0」
酉年 = 余り「1」
戌年 = 余り「2」
亥年 = 余り「3」
子年 = 余り「4」
丑年 = 余り「5」
寅年 = 余り「6」
卯年 = 余り「7」
辰年 = 余り「8」
巳年 = 余り「9」
午年 = 余り「10」
未年 = 余り「11」
という関係が成立します。
この余りを取得するためにMOD関数を利用しています。
MOD関数は、第1引数を第2引数で割り算したときの余りを返してくれます。
「=CHOOSE(MOD(A2,12)+1,"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未")」
という数式の
「MOD(A2,12)」
の部分で行っているのが西暦を「12」で割った余りを求める計算です。
次に余りの数値を干支にするためにCHOOSE関数を利用します。
CHOOSE関数は、第1引数に指定された数値に該当する値を第2引数以降から返す関数です。
第1引数に、
「1」を指定すると
第2引数の値が返され
「2」を指定すると
第3引数の値が返され
「3」を指定すると
第4引数の値が返されます。
CHOOSE関数では、第1引数に「1」以上の数値を指定する必要があり、「0」が指定されるとエラーとなってしまいます。
「MOD(A2,12)」
に「1」を加算する
「MOD(A2,12)+1」
をCHOOSE関数の第1引数にすることで、
申 = 「1」
酉 = 「2」
戌 = 「3」
亥 = 「4」
子 = 「5」
丑 = 「6」
寅 = 「7」
卯 = 「8」
辰 = 「9」
巳 = 「10」
午 = 「11」
未 = 「12」
という関係になり、
「=CHOOSE(MOD(A2,12)+1,"申","酉",・・・」
といった数式で西暦から干支が表示できるわけです。
▼サンプルファイル(003187.xls 42KByte)ダウンロード
サンプルファイルの
B2:B13セルには、上記の
「=CHOOSE(MOD(A2,12)+1,"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未")」
という数式
D2:D13セルには
「=MOD(A2,12)」
E2:E13セルには
「=MOD(A2,12)+1」
F2:F13セルには、E列の値を元に干支を表示する
「=CHOOSE(E2,"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未")」
という数式がそれぞれ入力してありますので、ご確認ください。
Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » 西暦から干支を求めるには−CHOOOSE関数・MOD関数