goo blog サービス終了のお知らせ 

GameSprit

自転車やMac・AppleScript、映画・小説やドラマのレビュー、備忘メモ・クイズなどを置いています。

エクセル関数:エクセルを使って、年齢早見表をつくる

2012-04-12 20:25:35 | エクセル関数
エクセルを使って、年齢早見表、西暦和暦換算十干十二支表を作ってみた。


平成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 を入力し、上端までコピーする。


見栄えを整えたら完成!










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

最新の画像もっと見る

post a comment

ブログ作成者から承認されるまでコメントは反映されません。