在 Excel 中取得或根據出生日期計算年齡
若您在 Excel 工作表中有一份員工的出生日期清單,並希望為每位員工快速計算年齡,可善用 Excel 內建的實用函數,例如 YEARFRAC 或 DATEDIF,輕鬆根據生日取得精確年齡。

- 使用 YEARFRAC 函數根據出生日期計算年齡
- 使用 DATEDIF 函數根據出生日期計算年齡
- 根據出生日期計算以年、月、日表示的年齡
- 在 Excel 中計算特定日期的年齡
- 根據 1900 之前的出生日期計算年齡
- 根據出生日期,從目前日期或特定日期計算年齡的實用功能
使用 YEARFRAC 函數根據出生日期計算年齡
在 Excel 中,YEARFRAC 函數可協助您根據給定的出生日期取得年齡,其一般語法如下:
- birthdate:生日日期。
- TODAY():此函數會傳回今天的日期。
請在空白儲存格中輸入下列公式:
接著,向下拖曳填滿控點至您要套用此公式的儲存格,所有年齡皆已計算完成並以小數形式顯示於儲存格中,如下圖所示:

提示:使用 YEARFRAC 函數計算的結果為小數,若要將年齡轉為整數,請搭配 INT 函數,如下所示:
如此即可取得整數形式的年齡:

使用 DATEDIF 函數根據出生日期計算年齡
DATEDIF 函數同樣可將出生日期轉換為年齡,其一般語法如下:
- birthdate:指您的生日日期。
- TODAY():此函數會傳回今天的日期。
- y:此函數會傳回從出生日期至目前日期之間的完整年數。
現在,請在空白儲存格中輸入或複製下列公式:
所有年齡皆已根據出生日期計算完成,如下圖所示:

根據出生日期計算以年、月、日表示的年齡
若您想取得人員的精確年齡,例如從其出生日期到目前日期共經歷多少年、月與日,請將多個 DATEDIF 函數串接成單一公式,如下所示:
接著,您將獲得如下圖所示的結果:

提示:若套用上述公式時希望隱藏顯示為 0 的年、月或日,可搭配 IF 函數來檢測是否為 0. 請使用下列公式:
如此即可獲得下圖所示結果,所有年齡均以年、月、日顯示,且不包含 0 值:

在 Excel 中計算特定日期的年齡
有時您可能希望計算從出生日期到某個特定日期(而非今天)的年齡,此時只需將第二個參數中的 TODAY() 函數替換為該特定日期即可。例如:
- birthdate:生日日期。
- specific_date:您要據此從出生日期計算年齡的截止日期。
- y:此函數會傳回從出生日期到目前日期之間的完整年數。
請使用下列公式:
接著,年齡將根據出生日期至特定日期計算完成,如下圖所示:

提示:若要取得精確的年、月、日年齡,請使用下列公式:

根據 1900 之前的出生日期計算年齡
當出生日期早於 1900 年時,上述公式將無法正確運作,因為 Excel 會自動將早於 1900 年的日期儲存為文字格式。為此,我們特別提供一個使用者自訂函數,協助您在出生日期早於 1900 年時精準計算年齡。
1. 按下 Alt + F11 鍵,即可開啟 Microsoft Visual Basic for Applications 視窗。
2. 接著點選插入> 模組,並將下列 VBA 程式碼複製到模組視窗中。
計算從 1900 之前的出生日期到今天的年齡:
Function AgelnNow(ByVal xDate As Variant)
Dim xIA As Integer
xIA = 0
On Error Resume Next
xIA = DateDiff("yyyy", xDate, Now())
If (Month(Now()) < Month(xDate)) Or (Month(xDate) = Month(Now())) Then
If (Day(Now()) < Day(xDate)) Then
xIA = xIA - 1
End If
End If
If xIA = -1 Then
AgelnNow = "Error"
Else
AgelnNow = xIA
End If
End Function
3. 接著在空白儲存格中輸入下列公式:=AgelnNow(A2)(A2 為出生日期所在儲存格)
接著向下拖曳填滿控點至您要取得年齡的儲存格,所有從出生日期到今天的年齡皆已計算完成,如下圖所示:

提示:若您需要根據出生日期至死亡日期(而非目前日期)計算年齡,請套用下列程式碼:
計算從 1900 之前的出生日期到死亡日期的年齡:
Function Age(ByVal StartDate As Variant, ByVal EndDate As Variant)
Dim xIA As Integer
xIA = 0
On Error Resume Next
xIA = DateDiff("yyyy", StartDate, EndDate)
If (Month(EndDate) < Month(StartDate)) Or (Month(StartDate) = Month(EndDate)) Then
If (Day(EndDate) < Day(StartDate)) Then
xIA = xIA - 1
End If
End If
If xIA = -1 Then
Age = "Error"
Else
Age = xIA
End If
End Function
並使用下列公式:=Age(A2,B2)(A2 為出生日期儲存格,而 B2 為死亡日期儲存格)以取得如下圖所示的結果:

根據出生日期,從目前日期或特定日期計算年齡的實用功能
Kutools for Excel 提供一項便捷工具——日期時間助手功能,讓您無需記憶任何繁瑣公式,即可根據出生日期,輕鬆從目前日期或特定日期計算年齡!立即點擊下載 Kutools for Excel 免費試用!
相關函數:
- YEARFRAC:
- 此函數會傳回一個小數值,代表兩個日期之間的年份比例。
- TODAY()
- 此函數會傳回當前的日期值。
- INT()
- 此函數會傳回數值的整數部分。
- DATEDIF
- 此函數可精確計算兩個指定日期之間的完整年數、月數或天數。
相關年齡計算文章:
- 在 Excel 中快速將出生日期轉換為年齡
- 例如,當您在 Excel 中有一組不同的出生日期資料,需要將這些日期轉換為精確的年齡值,該如何處理?
- 在 Google 工作表中根據出生日期計算年齡
- 您是否曾想在 Google 工作表中根據出生日期快速算出年齡?本文將為您介紹幾個實用公式,讓這項任務變得輕鬆又簡單!
- 在 Excel 中根據身分證號碼計算年齡
- 假設您有一份包含 13 位數字的身分證號碼清單,其中前 6 碼代表出生日期。例如,身分證號碼 9808020181286 即表示出生日期為 1998 年 8 月 2 日。
- 根據出生日期計算以年、月、日表示的年齡
- 若有一欄給定的出生日期,您能否快速根據這些日期,計算出以年、月、日或小數形式呈現的年齡(如下圖所示)?
- 在 Excel 中計算特定或未來日期的年齡
- 例如,當您已知某人的出生日期,並希望根據未來或特定日期來計算其年齡,以下方法將為您逐步詳解操作步驟。
最佳 Office 生產力工具
Kutools for Excel -助您脫穎而出
| 🤖 | KUTOOLS AI 助手:以以下方式革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、標示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 超級 VLookup:多重條件 | 多重值 | 跨多個工作表 | 模糊查找…… | |
| 進階下拉列表:簡易下拉式清單 | 相依下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位 | 移動欄位 | 切換隱藏欄位的可見狀態 |比較欄位以選擇相同/不同單元格…… | |
| 精選功能:網格聚焦 | 設計視圖 | 增強編輯欄 | 工作簿與工作表管理員|資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符……)| 50+ 圖表 類型(甘特圖……)| 40+ 實用公式(基於生日計算年齡……)| 19 插入工具(插入二維碼,從路徑插入圖片……)| 12 轉換工具(金額轉大寫,匯率轉換……)| 7 合併和拆分工具(高級合併行,拆分 Excel 儲存格……)|……還有更多 |
Kutools for Excel 擁有超過 300 項功能,確保您所需的功能僅需一鍵即可取得……
Office Tab -在 Microsoft Office(包含 Excel)中啟用分頁式閱讀與編輯
- 一秒內在數十份開啟的文件間快速切換!
- 每天為您減少數百次滑鼠點擊,遠離滑鼠手困擾。
- 在檢視與編輯多份文件時,讓您的生產力提升高達 50%。
- 為 Office(包含 Excel)帶來如 Chrome、Edge 與 Firefox 般的高效能分頁體驗。