ACCESS 関数を使って年齢を計算する機能

関数を使って年齢を計算する機能

ACCESSでは顧客や従業員など、人の情報を入力するシーンが多々あります。
そのため、年齢を表示することも多いでしょう。

年齢は手入力してしまうと毎年更新されるため、データの管理が煩雑になります。
生年月日から計算できますので、ここは自動計算させたいところです。

今回は、関数を使って年齢を計算する機能をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSで実際に作成したフォームやレポートを、その作成方法と共にご紹介していきます。

DateDiff関数

年齢の計算はDateDiff関数を使って行うことができます。

DateDiff関数は2つの日付の間隔を求める関数です。
これを使って、生年月日と現在の日付の間隔(年数)を求めることで年齢を計算できます。

DateDiff関数は以下の構文で利用できます。

DateDiff ( 間隔 , 日付1 , 日付2 )

DateDiff関数について詳しくは以下の記事をご覧ください。

DateDiff関数で日付間隔を求める方法

年齢の計算方法

では実際に年齢を求めてみましょう。
以下のフォームを作成しました。

生年月日と現在の日付を入力すると、年齢を自動計算するフォームです。
年齢コントロールのコントロールソースは以下の通り設定しました。


 =DateDiff("yyyy",[生年月日],[現在の日付])
 

DateDiff関数を用いて、生年月日と現在の日付の間隔を「年」単位で計算します。

では実際に動作させてみましょう。

生年月日に2013年10月1日、現在の日付に2023年10月8日と入れると、年齢が10歳と正しく計算されました。

正しい年齢の計算

しかし、実はDateDiff関数には落とし穴があります。
それは1月1日時点で年数を1つ増やしてしまうことです。

例えば先ほどの例で現在の日付を2023年1月1日にしてみます。

すると、今年の誕生日はまだ到来していないので年齢は9歳が正しいにも関わらず、計算結果は10歳となってしまっています。
これを回避するために、年齢の計算方法を以下のように修正しました。


 =IIf(Format([現在の日付],"mmdd")<Format([生年月日],"mmdd"),DateDiff("yyyy",[生年月日],[現在の日付])-1,DateDiff("yyyy",[生年月日],[現在の日付]))
 

IIf関数を用いて、現在の日付が生年月日の月日より小さい場合は、DateDiff関数で求めた年数から-1し、そうでない場合はDateDiff関数で求めた年数をそのまま利用する、という式です。

ではこちらで再度結果を見てみましょう。

年齢2が新しくIIf関数を使って作成した計算式です。
正しく年齢が計算されていることが分かります。

以上、関数を使って年齢を計算する機能をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。