このページの本文へ移動
  1. ホーム >
  2. FMVサポート >
  3. Q&A・パソコン活用情報をコーナーから探す >
  4. エクセル関数塾 >
  5. 今日までの期間は?DATEDIF関数で年齢や期間を求めよう!

エクセル関数塾

第23回今日までの期間は?DATEDIF関数で年齢や期間を求めよう!

塾長!Excelの関数にもだいぶ慣れてきて、仕事も順調にはかどっております!

Excelの関数は「関数の挿入」ボタンから入力してきましたが、どうしても分からない関数が1つありまして……。

会員さんの今日時点の年齢を求めたいと思うのですが、日付/時刻関数を組み合わせても、いまひとつ上手く求められないのです。
塾長のお知恵を拝借させていただけませんでしょうか?

わしが、エクセル関数塾塾長!関 数之進(せきかずのしん)である!

Excelの関数を仕事に活かしてくれているとは、うれしいぞ!

実は「関数の挿入」ボタンからは入力できない関数もあるのじゃ。以前にも、「DATESTRING関数」が「関数の挿入」ボタンや関数ライブラリから挿入できないことを紹介したが、君が困っている年齢や期間を求める関数「DATEDIF関数」も、セルに直接関数を入力することになる。

なぜ、「関数の挿入」ボタンや関数ライブラリから挿入できないか?については、関数の歴史から紐解いてじっくり説明したいところじゃが、今日のところは結論から述べるとしよう。年齢を求めるには「DATEDIF関数」を使えば、現在の年齢や2つの日付の期間などが簡単に求められるのだ!その技を極意書を使って説明しよう!

関数塾 極意書

DATEDIF関数で年齢を求めてみよう

エクセルでは、DATEDIF(デイトディフ)関数を使って、2つの日付のシリアル値から期間を求め、その間の「年数」、「月数」や「日数」などを求めることができます。例えば、生年月日を「開始日」、年齢を求めたい日を「終了日」に指定すれば、「年齢」を求めることができます。

ここでは、DATEDIF関数の基本的な書式と機能について紹介します。

シリアル値については、下記ページにて説明しています。

DATEDIF関数の書式

DATEDIF関数は次のように入力します。
=DATEDIF(開始日,終了日,単位)

引数の「単位」には、次のような値を指定します。
"Y":期間内の満年数
"M":期間内の満月数
"D":期間内の日数

DATEDIF関数を入力するときは、[関数の挿入]ボタンやExcel2007と2010の関数ライブラリからは選択できません。セルに関数名を入力し、シリアル値が入力されているセルや値を指定します。

今回の例では、すでにC列に日付データ(シリアル値)が入力されています。開始日を、それぞれの生年月日、終了日をセルC1に指定して年齢を求めてみましょう。

セルD4をアクティブにし、「=DATEDIF(C4,$C$1,"Y")」と入力し、セルC1は下へコピーしても移動しないように、絶対値指定にしている画面イメージ

DATEDIF関数を入力するセルD4をアクティブにし、「=DATEDIF(C4,$C$1,"Y")」と入力します。セルC1は下へコピーしても移動しないように、絶対値指定にします。

次へ

セルD4に「30」と、年齢が表示され、数式バーを確認すると、「=DATEDIF(C4,$C$1,"Y")」の式が入力されている画面イメージ

セルD4に「30」と、年齢が表示されました。数式バーを確認すると、「=DATEDIF(C4,$C$1,"Y")」の式が入力されています。

次へ

DATEDIF関数の式をセルD13までコピーしている画面イメージ

DATEDIF関数の式をセルD13までコピーします。

次へ

各会員の年齢が求められている画面イメージ

各会員の年齢が求められました。

ステップアップ:期間の月数と他の関数を組み合わせてみよう

DATEDIF関数では、「単位」を変更すると開始日と終了日の間の月数や日数が求められます。例えば、ある一定の月数が経過した段階でイベントやプレゼントなどのサービスを行ったり、経過年月を管理したりするときにも便利です。
次の例は、会員の入会後の月数の記録です。入会後50ヵ月以上で、F列に「プレゼント」と表示され、注意を引くように書式も変更するように設定されています。ここでは、入会後の月数を求めてみましょう。

F列に設定されている式と書式
式:
=IF(D4>=50,"プレゼント","")

⇒ 入会後50ヵ月以上なら「プレゼント」と表示、そうでなければ空白セルを表示

条件付き書式:
⇒ セルの値が"プレゼント"に等しければ、「濃い赤の文字、明るい赤の背景」

セルD4をアクティブにし、「=DATEDIF(C4,$C$1,"M")」と入力している画面イメージ

DATEDIF関数を入力するセルD4をアクティブにし、「=DATEDIF(C4,$C$1,"M")」と入力します。

次へ

セルD4に「78」と、入会後の月数が表示され、数式バーを確認すると、「=DATEDIF(C4,$C$1,"M")」の式が入力されている画面イメージ

セルD4に「78」と、入会後の月数が表示されました。数式バーを確認すると、「=DATEDIF(C4,$C$1,"M")」の式が入力されています。

次へ

DATEDIF関数の式をセルD13までコピーしている画面イメージ

DATEDIF関数の式をセルD13までコピーします。

次へ

F列にすでに設定されている式や書式が反映されている画面イメージ

F列にすでに設定されている式や書式が反映されます。

DATEDIF関数は、2つのシリアル値の「期間」を求める関数です。DATEDIF関数は[関数の挿入]ボタンやExcel2007と2010の関数ライブラリからは選択できないので、セルに直接関数名を入力して利用します。年齢を求める関数として比較的利用されていますが、月数などを求めることもできるので、関数の組み合わせや工夫次第で用途が広がります。

問題

次のような会員一覧を作成しましょう。
次の表は、ある会の会員一覧です。会員の入会時の年齢を求めてみましょう。

会員一覧の画面イメージ

※ 以下の内容はパソコンをご覧になっている方を対象としています。
サンプルをご利用になる場合は、パソコンにて本ページをご覧ください。

問題に必要なエクセルのファイルをダウンロードしてください。
ダウンロードするには、下記のファイル名を右クリックして、メニューから「対象をファイルに保存」を選択してください。

datedif-sample.xls(26KB)

本講座では、ファイルの保存先を《ドキュメント》としています。
ダウンロード方法がわからない場合は、下記ページをご参照ください。

答えを見る