データベースを構築する際は、最初にフィールドをきちんと考えておくことが大切です。順次変動するものはデータには不向きです。常時、変更し続けなくてはならない…というのは、現実的ではありません。例えば「年齢」や「学年」のようなフィールドは、常に変わり続けていくので、管理が大変です。
そこで「年齢」の代わりに、絶対に変わらない「生年月日」をデータベース化しておくといった対処が良く行われます。「学年」であれば「入学年度」といった変わらないデータを考えます。
そこで「生年月日」から「年齢」を算出することが必要になります。年齢は、誕生日が来ると1つ増えるわけで、計算する日が誕生日前なのか誕生日後なのかで変わってくるから厄介です。
よく使われるのが、DATEDIF関数という関数で、指定した「開始日」と「終了日」の間の期間を、指定「単位」で表示させます。
ただし、DATEDIF関数は、Lotus1-2-3という表計算ソフトの古いブックに対応するために、Microsoftが設けている関数で、Microsoftは正式にサポートしていません。そのため、関数の挿入ダイアログボックスなどから、選択することができず、手入力をしなければなりません。
年齢のセルをアクティブにしたら、「=datedif(,,)」と入力します。カンマを2つ入力することで、引数が3つあるということがわかります。入力をしたら
数式バーの「fx」のボタンをクリックします。
すると、関数の引数ダイアログボックスが開きます。Microsoftがサポートしていないので、引数名などは表示されませんが、ともかく3つの引数のボックスが用意されますので、引数を指定するのが少し簡単になります。
1つ目の引数は「開始日」ですので、用意されている「生年月日」を指定します。2つ目の引数は「終了日」です。今日の日を指定しなければなりませんので「today()」と入力しTODAY関数を利用します。3つ目の引数は「単位」です。「Y」と入力すると、単位は「年」になりますので、生年月日から今日までの期間が何年なのかを算出してくれます。
単位の「年」は自動的に前後にダブルクォーテーションが表示されます。
この式で、生年月日から年齢が表示されます。