Excelで暦を表す
Excelでは、(年月日の)「月」の表示形式として睦月、如月…… を選択することは現状できない。
これを実現するには、CHOOSE() 関数を用いて、以下のような
表現を使うことができる。(A1はシリアル値)
=CHOOSE(MONTH(A1),"睦月","如月","弥生","卯月","皐月","水無月","文月","葉月","長月","神無月","霜月","師走")
この場合、例えば「令和2年睦月4日」などと表示するには、
A1 に「2020/1/4」と入力し、別のセルに
=TEXT(A1,"ggge")&"年"&CHOOSE(MONTH(A1),"睦月","如月","弥生","卯月","皐月","水無月","文月","葉月","長月","神無月","霜月","師走")&DAY(A1)&"日"
とする。& は文字列を連結する演算子。
さらに、「令和二年睦月四日」とするなら、
=TEXT(A1,"ggg")&NUMBERSTRING(TEXT(A1,"e"),1)&"年"&CHOOSE(MONTH(A1),"睦月","如月","弥生","卯月","皐月","水無月","文月","葉月","長月","神無月","霜月","師走")&NUMBERSTRING(DAY(A1),1)&"日"
NUMBERSTRING() 関数の第2引数を2にすると、
「令和弐年壱月四日」のようにもできる。
また、ある年の干支を返すなら以下のように。
=CHOOSE(MOD(I12,12)+1,"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未")
MOD() は剰余を返す関数。
この例ではセル I12に西暦で入力されているとするが、
2020/1/14 のようなシリアル値から変換するなら、もちろん数式中のI12の部分を YEAR(I12) にするだけ
さらに十干十二支を返すなら、
=CHOOSE(MOD(I12,10)+1,"庚","辛","壬","癸","甲","乙","丙","丁","戊","己")&CHOOSE(MOD(I12,12)+1,"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未")
ちなみに、干も支も漢字一文字なので、「文字列の任意の位置から指定された文字数の文字を返す」MID() 関数を使って次のようにも記述できる。
=MID("庚辛壬癸甲乙丙丁戊己",MOD(I12,10)+1,1)&
MID("申酉戌亥子丑寅卯辰巳午未",MOD(I12,12)+1,1)
この記事が気に入ったらサポートをしてみませんか?