DATEDIF関数の使い方
2つの日付の間隔(年数、月数、日数)を計算します。隠し関数です。
200720102013201620192021365
- 構文
-
=DATEDIF(開始日, 終了日, 単位) - 引数
-
- 開始日必須
- 終了日必須
- 単位必須
- どんな関数か
DATEDIF は、2つの日付の間が何年・何か月・何日かを返します。年齢や勤続年数の計算の定番です。入力の候補に出てこない「隠し関数」なので、名前を手で打ち込みます。3つめの単位は
"Y"(満年数)・"M"(満月数)・"D"(日数)・"YM"(1年未満の月数)・"MD"(1か月未満の日数)で、「◯歳◯か月」は"Y"と"YM"を組み合わせます。開始日が終了日より後だと#NUM!。"MD"は月末がからむと正しくない値を返すことがあり、Microsoft も推奨していません。- 使用例
-
B2 に
=DATEDIF("2000/1/1", TODAY(), "Y")を入れると、こうなります。A B 1 誕生日 年齢 2 2000/1/1 23 数式を入れたセル
結果: 23(2000年生まれの人の、2023年10月時点の満年齢。今日の日付で計算するので、年が変われば増える)
つまずきやすいところ
- 入力補完に出てこない。手で打つ
- 単位は
"Y"年 /"M"月 /"D"日 "MD"は結果が合わないことがあり、Microsoft も勧めていない
よくあるエラーと、その直し方
#NUM!- 開始日が終了日より後になっている引数の順番を入れ替える
DATEDIFを使う実例レシピ(8件)
- 誕生から今日までの年齢を計算する生年月日から、現在何歳かを自動的に算出する。
- 2つの日付の間が何ヶ月あるか数える契約日から解約日まで、トータルで何ヶ月(何周年)経過したか知りたい。
- 単純に「何日間」経過したか知りたいプロジェクト開始から今日まで、延べ何日の工数がかかったか正確に算出する。
- 製造日から何日経過したかを「鮮度」として表示出荷までのリードタイムが長すぎないか、日々モニタリングしたい。
- 生年月日から「現在の年齢」を自動更新名簿を開くたびに、誕生日を迎えた人の年齢が勝手に上がるようにしたい。
- 入社日から「勤続年数」と「勤続月数」を出す永年勤続表彰の対象者を抽出したり、退職金の計算シミュレーションをしたい。
- 40歳から「介護保険料」を自動で上乗せする年齢によって保険料率が変わるのを、数式で自動切り替えしたい。
- PCの「導入から3年」が経過したものをリストアップリース切れやスペック不足になる前に、買い替えの対象を知りたい。