エクセルを使って、年齢早見表、西暦和暦換算十干十二支表を作ってみた。
平成24年(2012年)版年齢早見表 - GameSprit で一度つくってみたのだが、その謎解き版。
難しい部分は十干十二支。
十干は甲・乙・丙・丁・戊・己・庚・辛・壬・癸の10種類。また、十二支は子・丑・寅・卯・辰・巳・午・未・申・酉・戌・亥の12種類。
計算としては、西暦を10で割った余りが、10年で一巡する十干に対応する。
例えば、2012年。
2012 % 10 = 2
余り2は、下表では「壬」に対応するので、2012年の十干は「壬」となる。
また、西暦を12で割った余りが、12年で一巡する十二支に対応する。
例えば、2012年。
2012 % 12 = 8
余り8は、下表では「辰」に対応するので、2012年の十二支は「辰」となる。
つまり、2012年は「壬辰」の年。
このようなアルゴリズムで干支(十干十二支)を計算する。
さて、エクセルの計算式としてはどうなるのだろう?
エクセルで余りを求める関数は「MOD」。
余り = MOD(割算の分子, 割算の分母)
つまり、MOD(2012, 10) = 2、MOD(2012, 12) = 8となる。
ここで、余りを十干と十二支に対応させる必要がある。
対応させる仕組みとして、ここでは対応表を使った。
対応表を参照する関数は「VLOOKUP」。
対応する値 = VLOOKUP(検索値,範囲,列番号,検索の型)
つまり、VLOOKUP(2,A7:B16,2) = "壬"、VLOOKUP(8,A20:B31,2)="辰"となる。
さらに、エクセルでは関数を入れ子にすることができるので、余りを求める関数を対応表を参照する関数に組み込むと、次のようになる。
VLOOKUP(MOD(2012, 10),A7:B16,2) = "壬"
VLOOKUP(MOD(2012, 12),A20:B31,2)="辰"
ついでに、それぞれ「2012」の部分をD2などセルを参照するようにすれば、D2に入力した西暦から十干と十二支を計算してくれる。
VLOOKUP(MOD(D2, 10),A7:B16,2) = "壬"
VLOOKUP(MOD(D2, 12),A20:B31,2)="辰"

干支以外にも年齢早見表には、和暦が必要。
西暦を和暦に変換するには次のような関数を使う。
=TEXT((DATE(N35,1,1)),"ggge")
セルN35に2012を入力すると、このセルにはその年の1月1日時点の和暦である「平成24」が表示される。
なお、 =TEXT((DATE(N35,1,1)),"ge")であれば、「H24」を表示する。
年齢早見表なので、2012年の年齢を0として、計算してゆく。
セルR35に0才を表示させたら、ここは簡単にすぐ上のセルに =R35+1 を入力し、上端までコピーする。
見栄えを整えたら完成!

キーワード:年齢早見表、西暦和暦換算、十干、十二支、干支、アルゴリズム、エクセル、エクセル関数
平成24年(2012年)版年齢早見表 - GameSprit で一度つくってみたのだが、その謎解き版。
難しい部分は十干十二支。
十干は甲・乙・丙・丁・戊・己・庚・辛・壬・癸の10種類。また、十二支は子・丑・寅・卯・辰・巳・午・未・申・酉・戌・亥の12種類。
計算としては、西暦を10で割った余りが、10年で一巡する十干に対応する。
例えば、2012年。
2012 % 10 = 2
余り2は、下表では「壬」に対応するので、2012年の十干は「壬」となる。
また、西暦を12で割った余りが、12年で一巡する十二支に対応する。
例えば、2012年。
2012 % 12 = 8
余り8は、下表では「辰」に対応するので、2012年の十二支は「辰」となる。
つまり、2012年は「壬辰」の年。
このようなアルゴリズムで干支(十干十二支)を計算する。
さて、エクセルの計算式としてはどうなるのだろう?
エクセルで余りを求める関数は「MOD」。
余り = MOD(割算の分子, 割算の分母)
つまり、MOD(2012, 10) = 2、MOD(2012, 12) = 8となる。
ここで、余りを十干と十二支に対応させる必要がある。
対応させる仕組みとして、ここでは対応表を使った。
対応表を参照する関数は「VLOOKUP」。
対応する値 = VLOOKUP(検索値,範囲,列番号,検索の型)
つまり、VLOOKUP(2,A7:B16,2) = "壬"、VLOOKUP(8,A20:B31,2)="辰"となる。
さらに、エクセルでは関数を入れ子にすることができるので、余りを求める関数を対応表を参照する関数に組み込むと、次のようになる。
VLOOKUP(MOD(2012, 10),A7:B16,2) = "壬"
VLOOKUP(MOD(2012, 12),A20:B31,2)="辰"
ついでに、それぞれ「2012」の部分をD2などセルを参照するようにすれば、D2に入力した西暦から十干と十二支を計算してくれる。
VLOOKUP(MOD(D2, 10),A7:B16,2) = "壬"
VLOOKUP(MOD(D2, 12),A20:B31,2)="辰"

干支以外にも年齢早見表には、和暦が必要。
西暦を和暦に変換するには次のような関数を使う。
=TEXT((DATE(N35,1,1)),"ggge")
セルN35に2012を入力すると、このセルにはその年の1月1日時点の和暦である「平成24」が表示される。
なお、 =TEXT((DATE(N35,1,1)),"ge")であれば、「H24」を表示する。
年齢早見表なので、2012年の年齢を0として、計算してゆく。
セルR35に0才を表示させたら、ここは簡単にすぐ上のセルに =R35+1 を入力し、上端までコピーする。
見栄えを整えたら完成!

キーワード:年齢早見表、西暦和暦換算、十干、十二支、干支、アルゴリズム、エクセル、エクセル関数