Excelで生年月日が 20200101 のような 「yyyymmdd」形式の数値または文字列で入力されている場合、
そのままでは通常の DATE 関数や DATEDIF 関数が使えません。
✔ 「20201225」などの形式から年齢を計算したい
✔ セルは日付ではなく数値や文字列になっている
✔ TODAY関数と組み合わせて正確な年齢を出したい
そんなときに便利な、関数だけでできる「年齢の自動計算方法」 をご紹介します!
目次
使用するExcel関数の概要
| 関数 | 役割 |
|---|---|
DATE | 年・月・日を組み合わせて日付に変換 |
INT | 小数点以下を切り捨てる(年齢を整数に) |
TODAY | 今日の日付を取得 |
TEXT | 日付を"MMDD"形式に変換して比較用に使用 |
YEAR | 年だけを取り出して差分を算出 |
セル A1 に「生年月日」が yyyymmdd 形式で入力されている場合
A1セルの値:19960415(1996年4月15日)
✅正確な年齢を求める数式(誕生日が来ているかを考慮)
=YEAR(TODAY()) - INT(A1/10000) - (TEXT(TODAY(),"MMDD") < TEXT(A1,"0000") & TEXT(MOD(A1,10000),"00"))
解説:
INT(A1/10000)… 生まれた年(例:1996)MOD(A1,10000)… yyyymmdd の下4桁から月日(0415)TEXT(MOD(A1,10000),"00")… 月日を2桁で補完して比較用に整える(TEXT(TODAY(),"MMDD") < 生年月日のMMDD)
→ 誕生日がまだ来ていなければ1(1歳減らす)
✅ この数式で「今日時点での正確な年齢(満年齢)」が算出されます。
✅ざっくり年数を求める(少し精度は落ちる)
=INT((TODAY()-DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)))/365.25)
この式は 日数を365.25で割って大まかな年数を求める 方法です。
うるう年にはある程度対応していますが、誕生日が来ているかまでは判断しません。
A1が「文字列」や「数値」どちらでもOK?
はい、どちらでもOK ですが、文字列の場合は "19960415" のように「"」で囲まれていることを前提にすると、LEFT・MID・RIGHT 関数の方が扱いやすいです。
【Excel】年齢計算しようとしてDATEDIF関数が見つからない?【使えないときの原因と対処法】
複数人の生年月日から年齢を一括計算する
A列:生年月日(yyyymmdd)
B列:氏名
C列に以下の数式をコピー
=YEAR(TODAY()) - INT(A2/10000) - (TEXT(TODAY(),"MMDD") < TEXT(A2,"0000") & TEXT(MOD(A2,10000),"00"))
👉 数百人の名簿でも、年齢を一括で自動計算できます。
【Excel】指定日における年齢を計算する方法【過去・未来の任意日を指定して年齢計算】
まとめ
| 方法 | 内容 | 精度 |
|---|---|---|
| 方法① | 年・月・日を分解して計算 | ✅ 正確(誕生日考慮) |
| 方法② | 日数を365.25で割るだけ | △ ざっくり(誕生日未考慮) |
| 応用:名簿 | 複数人の年齢を一括計算可能 | ◎ 実務向け |
「yyyymmdd形式」でも、DATE関数を使わずに年齢が正確に計算できます!
フォーマットを変えずに活用できるので、企業の名簿管理や顧客データの処理にもおすすめです。