今日はひな祭りです。街にはサトウハチロウ氏の童謡が溢れています。それも今日限りで、来月には近藤宮子氏作詞の「こいのぼり」が流れてくることでしょう。
正月、節分、桃の節句、端午の節句、成人式、卒業式、入学式と連なり、親、子、孫の年齢が気になる時期でもあります。
そんな中、従業員情報をエクセルで管理している人から、管理資料Output日の満年齢を手で計算して追記しているが、この作業を自動化する方法はないものかとの相談をいただきました。
一つのセルに西暦で入力された生年月日から今日現在の満年齢を算出する方法を説明します。
生年月日が「年・月・日」の様に複数のセルに分割されている場合は、これらを一つのセルに統合しなければなりません。
複数のセルの内容を一つに纏める方法は、次の機会にお話ししたいと思います。
(図1)
図1の、C4のセルに計算結果を表示させます。
満年齢を算出するには、『DATEDIF関数』を利用します。
「『DATEDIF』なんて関数ウィザードで見たことがない。」
と言われる方もいらっしゃるのではないでしょうか。『DATEDIF関数』は、他のアプリケーションとの互換性を維持するために用意されたものなので、関数ウィザードには表示されないようになっています。
この関数を利用すると、経過年数、経過月数、経過日数などを算出することができます。
C4のセルに書き込む計算式は、 「=DATEDIF(B4,TODAY(),”Y”)」 です。
(図2)
今日が2010年3月4日とすれば、今日現在の満年齢は57歳です。
また、任意の基準日、例えば12月31日における満年齢を求める場合は、任意のセル(例えばE4)に2010年12月31日と入力し、前述の計算式の「today()」を「E4」に変更すると、その日における満年齢を算出することができます。
(図3)
複数の明細行に式をコピーする場合、「E4」は相対座標なので、「E5」・「E6」・「E7」・・・のように1行ずつずれてしまい正しく計算されません。これを避けるために、「E4」を絶対座標にしておきます。
絶対座標にする方法は、「E4」をクリッドして選択状態にし、〔F4〕keyを押します。
“=DATEDIF(B4,E4,”Y”)” が “=DATEDIF(B4,$E$4,”Y”)” に変わります。
また、『DATEDIF関数』の単位(“Y”とした部分)を変えることによって、満月数、満日数などを求めることができます。
“Y”:期間内の満年数
“M”:期間内の満月数
“D”:期間内の満日数