DATEDIF関数の使い方|年齢・勤続年数を自動計算する方法と、使えないときの原因

DATEDIF関数|年齢・勤続年数を自動で計算 日付・文字列

生年月日から年齢を出したい、入社日から勤続年数を計算したい。そんなときに便利なのが DATEDIF(デイトディフ)関数です。2つの日付の間の「年数」「月数」「日数」を求められます。

ただし、DATEDIFは関数の候補に表示されないため、「使えない」と感じる人も多い関数です。この記事では、年齢と勤続年数の計算方法を図解し、使えないときの原因と対処法も説明します。

=DATEDIF(開始日,終了日,単位)

DATEDIF関数の基本|3つの引数と単位

DATEDIF関数は、開始日と終了日の間の期間を、指定した単位で返します。引数は次の3つです。

  • 開始日:期間の始まりの日付(生年月日や入社日)
  • 終了日:期間の終わりの日付(今日の日付や基準日)
  • 単位:結果を年・月・日のどれで出すか。半角のダブルクォーテーションで囲んで指定します
単位意味結果の例
“Y”満の年数2年3か月なら2
“M”満の月数2年3か月なら27
“D”満の日数10日間なら10
“YM”年を除いた月数2年3か月なら3
“MD”年と月を除いた日数Microsoftが不具合を案内しており、使用は避ける

生年月日から年齢を計算する

年齢は、単位に “Y” を指定します。終了日に基準日(または TODAY() で今日の日付)を指定すれば、満年齢が求められます。

DATEDIF関数で、生年月日と基準日から満年齢を計算する式を示した図

今日の年齢を自動で表示したいときは、終了日に TODAY() を入れます。ファイルを開くたびに、その日の年齢に更新されます。

=DATEDIF(B2,TODAY(),"Y")

入社日から勤続年数(○年○か月)を計算する

勤続年数を「6年6か月」のように表示したいときは、”Y” と “YM” を組み合わせます。年の部分は “Y”、年を除いた月の部分は “YM” で求め、「&」でつなげます。

DATEDIF関数のYとYMを&でつなぎ、入社日から勤続年数を年とか月で表示する式を示した図

DATEDIFが使えないときの原因と対処法

DATEDIFは、関数の候補一覧やダイアログに表示されません。それでも、式を直接入力すれば使えます。うまく動かないときは、次の点を確認してください。

  • 開始日が終了日より後になっている:#NUM! エラーになります。開始日と終了日の順番を確認します
  • 日付が文字列になっている:「1990/5/15」が左寄せの場合は、文字列の可能性があります。日付の形式に直します
  • 引数の区切りや「”」が全角になっている:カンマやダブルクォーテーションは半角で入力します
  • “MD” を使っている:結果が正しくならないことがあるため、使用は避けます
  • 結果が日付の形で表示される:セルの表示形式を「標準」または「数値」に変更します

候補に出ないのはなぜ?

DATEDIF関数は、古い表計算ソフトとの互換性のために残されている関数で、Excelの関数一覧には載っていません。ただし、現在のExcelでも、直接入力すれば問題なく使えます。

まとめ

  • DATEDIF関数は「=DATEDIF(開始日,終了日,単位)」で、期間を年・月・日で求める
  • 年齢は単位 “Y”、勤続年数は “Y” と “YM” を組み合わせる
  • 今日の年齢は終了日に TODAY() を使う
  • 関数の候補には出ないが、直接入力すれば使える
  • 使えないときは、日付の順番・文字列・全角を確認する

年齢や勤続年数を手計算する必要がなくなります。名簿や管理表で、ぜひ活用してください。

コメント

タイトルとURLをコピーしました