ACCESS 関数を使って年齢を計算する機能
ACCESSでは顧客や従業員など、人の情報を入力するシーンが多々あります。
そのため、年齢を表示することも多いでしょう。
年齢は手入力してしまうと毎年更新されるため、データの管理が煩雑になります。
生年月日から計算できますので、ここは自動計算させたいところです。
今回は、関数を使って年齢を計算する機能をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSで実際に作成したフォームやレポートを、その作成方法と共にご紹介していきます。
DateDiff関数
年齢の計算はDateDiff関数を使って行うことができます。
DateDiff関数は2つの日付の間隔を求める関数です。
これを使って、生年月日と現在の日付の間隔(年数)を求めることで年齢を計算できます。
DateDiff関数は以下の構文で利用できます。
DateDiff ( 間隔 , 日付1 , 日付2 )
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の操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。