想在Excel中用出生日期欄位自動算出「X歲Y個月」?只要用 DATEDIF 函數搭配 TODAY(),就能精準算出足歲與剩餘月數,還能直接串接成文字顯示,完全不用手動計算。以下是針對行政、人資、教師等需要批量處理學生、員工或會員名冊的實用教程。
延伸閱讀:年齡計算
Excel用DATEDIF快速算出整歲與剩餘月數
在Excel中,最準確計算年齡的方式是使用 DATEDIF 函數。這個函數不只算整歲,還能算出不足一年的月數,特別適合製作報名表、員工資料表或生日提醒清單。
算整歲(足歲):
輸入公式 =DATEDIF(出生日期, TODAY(), "Y"),例如 =DATEDIF(A2, TODAY(), "Y"),就能得出「已滿幾歲」,以生日為分界點,不會提早一歲。
✅ 提示:若出生日期在A2欄,公式套用時直接改成
=DATEDIF(A2, TODAY(), "Y")。
算剩餘月數(不滿整年的部分):
加上 "YM" 參數,=DATEDIF(A2, TODAY(), "YM"),可算出當前年份中多出的月數。例如「已滿 3 歲 7 個月」。
文字串接範例(報表用):
想讓結果直接顯示成「已滿3歲7個月」?直接套用:="已滿"&DATEDIF(A2,TODAY(),"Y")&"歲"&DATEDIF(A2,TODAY(),"YM")&"個月"
???? 小技巧:若要包含「剩餘天數」,可再加
"MD"參數,但兒童或保險用途常只看「歲+月」。
想快速核對結果?可前往 年齡計算公式 預先輸入日期驗證。
YEARFRAC函數與DATEDIF的差異:生日分界的影響
兩種方法常被混用,但邏輯完全不同,選錯會導致年齡多算或少算。
DATEDIF 是以「生日當天」為分界點:
生日還沒到,就算「差一歲」,例如 2024 年 6 月 30 日出生者,在 2025 年 6 月 29 日仍算「3 歲」。
YEARFRAC 是按「比例計算」:
若搭配 ROUNDUP 會在生日當月前就加一歲,例如 2025 年 6 月 30 日越過 365 天就會被算成 4 歲,和 DATEDIF 的邏輯不同。
???? 選擇建議:
- 要精準「年齡」或「報表」用DATEDIF;
- 要計算「年資比例」或「服務年限」才適合用YEARFRAC。想比較不同方法的算式差異?可到 實際年齡計算 用相同日期測試。
常見錯誤#VALUE!與#NUM!的成因與排查方法
如果你輸入公式後看到 #VALUE! 或 #NUM!,問題通常出在日期格式或資料邏輯上。
#VALUE!:
多數因「出生日期欄位被存為文字」導致。例如「1990/05/15」輸入時沒設定日期格式,Excel 無法辨識。
✅ 解法:
用 =VALUE(A2) 轉成數值,或選取欄位 →「資料」→「分割資料」→ 選擇「按分隔符號」→ 勾選「日期」格式,即可修正。
#NUM!:
通常因為「結束日期(TODAY())早於起始日期(出生日)」,例如出生日輸錯成 2030 年。
✅ 檢查項目:
1. 是否有人出生日期是未來日期?
2. 欄位是否錯置(例如把今天日期放進出生欄)?
3. 是否有空值或亂碼?
建議:批量計算前先用「條件格式」標示出 > 3000 年或 < 1900 年的日期,快速發現異常。
批量計算年齡後如何驗證結果正確性?
完成整批公式填入後,別急著送出,記得挑 1~2 筆已知案例手動核對。
比如:1995年3月18日出生,今天是2025年4月5日,
用 DATEDIF 算:
Y:29 歲(因 4月5日還未到3月18日生日)
YM:1 個月(從3月18日到4月5日)
→ 正確結果應為「已滿29歲1個月」。
使用 TODAY() 能自動跟進當日,不用每天手動更新,適合長期使用的名冊。
⚠️ 記得:不要直接用「民國年」如「84年」計算,要先轉成西元年(如 1984 年),否則會算錯。
想確認換算邏輯?可參考 計算年齡。
誰適合用這套Excel年齡計算法?有什麼限制?
| 使用情境 | 適合? | 備註 |
|---|---|---|
| 行政/人資處理員工、學生名冊 | ✅ 非常適合 | 一次算完百筆,節省手工時間 |
| 教師整理班級生日表或活動報名 | ✅ 推薦 | 可搭配排序、篩選快速管理 |
| 初學者想學習Excel函數 | ❌ 不建議 | 需先掌握日期格式與函數語法 |
| 需要算早產兒矯正年齡或保險年齡 | ❌ 不適用 | 需額外設計邏輯與公式調整 |
這套方法不支援特殊年齡規則,如「以出生後第幾個月」計算或「按月份進位」,若有需要,建議手動調整或另建公式。
若你處理的是嬰幼兒資料,想看「出生後幾週」或「月齡標註」,可進一步參考 幼兒年齡計算 的工具與說明。

Comments (0)