KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

如何在 Excel 中根據出生日期,計算出以「年、月、日」格式呈現的年齡?

作者修改日期

在許多實際應用情境中,例如人力資源管理、醫療紀錄、學生資料庫或會員系統,根據個人的出生日期精確計算其年、月、日格式的完整年齡至關重要。若您在 Excel 中有一份出生日期清單,可能需要快速取得每位人員的精確年齡——無論是以年、月、日的詳細格式呈現,還是以小數或整數值顯示。透過這類計算,不僅能提升資料準確性,更能有效支援資格審核、政策適用與里程碑追蹤等關鍵任務。本文將為您介紹多種在 Excel 中高效執行年齡計算的實用方法。
以年、月和日計算年齡

目錄

根據出生日期計算年、月、日格式的年齡

根據出生日期計算小數格式的年齡

根據出生日期計算整數格式的年齡好點子3

VBA 程式碼-透過自訂巨集自動化大量資料的年齡計算

其他 Excel 內建方法-使用適用於 Excel 的 Microsoft Power Query 透過資料轉換計算年齡


根據出生日期計算年、月、日格式的年齡

一種實用且廣泛應用於報告與資格判定的精確年齡計算方式,是透過公式計算出生日期與特定參考日期(通常為今日)之間的年、月、日差異。此方法極適合對時間跨度精確度要求極高的場景,例如週年紀念、入學資格或福利計算。

選取您希望顯示年齡結果的儲存格,然後輸入下列公式:

=DATEDIF(A2,$F$2,“Y“)&“ 年 “&DATEDIF(A2,$F$2,“YM“)&“ 個月 “&DATEDIF(A2,$F$2,“MD“)&“ 天“

輸入公式後,按下 Enter,接著即可使用 Excel 的自動填滿控制點向下拖曳,將公式套用至其他列。

在此公式中,A2 為包含出生日期的儲存格,而 F2 應填入參考日期(例如今天)。此結構能提供精確的細項拆分,但請務必確認兩個儲存格皆設定為日期格式。若出現 #NUM!錯誤,可能是出生日期晚於參考日期,請立即檢查輸入內容。
套用公式以年、月和日計算年齡


根據出生日期計算小數格式的年齡

當您需要以小數形式呈現年齡(例如用於統計報告、快速分組或資格門檻判定)時,可運用簡潔公式,輕鬆產出如「24.11」的年齡數值,讓資料分析與篩選更高效流暢。

選取您希望顯示小數年齡的儲存格,然後輸入下列公式:

=DATEDIF(A2,$F$2,"Y")&"."&DATEDIF(A2,$F$2,"YM")

按下 Enter 確認公式,再向下拖曳填滿控制點,即可自動套用至其他列!

如同前述方法,A2 為您的出生日期,而 F2 應設為當前或參考日期。請務必確認日期儲存格格式正確!此方法雖簡便、易於處理數值資料,但未計入天數;若需精確到天的計算,請改用完整拆分法。
套用公式以小數計算年齡


根據出生日期計算整數格式的年齡

若您需要取得整數年齡(常見於教育資格、保險或存取控管等場景),僅需整數年齡結果通常已足夠,且往往是必要條件。Kutools for Excel 提供專屬的「基於生日計算年齡」功能,輕鬆簡化此流程,無需手動輸入複雜公式,特別適合處理大量資料或需反覆執行此計算的情境。

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

免費安裝 Kutools for Excel 後,請依照下列步驟操作:

1. 選取您要顯示計算年齡的儲存格,然後點擊 Kutools > 公式助手 > 公式助手
點擊 Kutools 的公式助手功能

2. 在公式助手對話方塊中,先從年齡類別選擇基於生日計算年齡公式,接著在 Date 文字方塊中選取包含出生日期的儲存格,然後點擊 OK
選擇「根據生日計算年齡」公式並設定參數

3. 您現在即可取得整數格式的年齡;視需要向下拖曳填滿控制點,套用至其他儲存格,不僅避免手動輸入錯誤,更簡化重複性的年齡計算作業。
年齡已以整數計算完成

提示:若您希望年齡能隨時間自動更新,請務必將 Excel 中的參考日期設為 =TODAY()


VBA 程式碼-透過自訂巨集自動化大量資料的年齡計算

當您需要處理數千筆記錄,並為每筆資料計算以年、月、日格式呈現的年齡時,手動拖曳公式不僅耗時,還相當費力。透過 VBA 巨集,您可一次自動化整欄的年齡計算,大幅減少重複作業,同時確保結果的一致性——即使您的出生日期清單經常變動也無需擔心。此方法最適合熟悉程式碼的進階使用者,或需頻繁管理大量資料更新的用戶。

1. 點擊開發工具Visual Basic,開啟 Microsoft Visual Basic for Applications 視窗;接著點擊插入 模組,並將下列程式碼貼入模組中:

Function AgeYMD(ByVal dob As Date, ByVal refDate As Date) As String
'Updated by Extendoffice 20250902
    Dim y As Long, m As Long, d As Long
    Dim t As Date

    If Not IsDate(dob) Or Not IsDate(refDate) Or refDate < dob Then
        AgeYMD = "Invalid date"
        Exit Function
    End If

    ' Years
    y = Year(refDate) - Year(dob)
    If DateSerial(Year(refDate), Month(dob), Day(dob)) > refDate Then y = y - 1

    ' Move dob forward by y years
    t = DateAdd("yyyy", y, dob)

    ' Months
    m = DateDiff("m", t, refDate)
    If DateAdd("m", m, t) > refDate Then m = m - 1

    ' Move temp forward by m months
    t = DateAdd("m", m, t)

    ' Days (now always >= 0)
    d = refDate - t

    AgeYMD = y & " Years, " & m & " Months, " & d & " Days"
End Function

Sub CalculateAgesAllRows()
    Dim ws As Worksheet, lastRow As Long, birthCell As Range, resultCell As Range
    Dim refDate As Date, xTitleId As String
    xTitleId = "KutoolsforExcel"

    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' Example prompt; default is today. Make sure you enter a valid date (e.g., 2025-09-02)
    refDate = Application.InputBox("Enter reference date (e.g., 2025-09-02)", _
                                   xTitleId, Date, Type:=1)

    For Each birthCell In ws.Range("A2:A" & lastRow)
        Set resultCell = ws.Cells(birthCell.Row, "B")
        If IsDate(birthCell.Value) Then
            resultCell.Value = AgeYMD(CDate(birthCell.Value), refDate)
        Else
            resultCell.Value = "Invalid date"
        End If
    Next birthCell
End Sub

2. 點擊執行按鈕執行按鈕以執行巨集。系統將提示您輸入參考日期(例如今天),隨即在 B 欄中為 A 欄的每個出生日期自動計算並填入對應年齡。

提示:請確保 A 欄包含有效日期,且第一列為標題(資料從 A2 開始)。若結果顯示「Invalid date」,請立即檢查來源欄位的格式是否正確!

此 VBA 自動化方法適用於大型或需定期更新的資料集,但需使用啟用巨集的檔案並正確設定信任中心。若您不希望使用程式碼,可考慮採用 Microsoft Power Query for Excel 作為免程式碼的替代方案。


其他 Excel 內建方法-使用適用於 Excel 的 Microsoft Power Query 透過資料轉換計算年齡

適用於 Excel 的 Microsoft Power Query 提供直覺、免程式碼的解決方案,讓您直接在 Excel 現代化介面中輕鬆計算年齡。只需將包含出生日期的表格載入 Power Query,即可新增自訂欄位,以年、月、日格式自動計算年齡,完全無需手動輸入公式或複製資料。此方法特別適合處理匯入資料,或需要定期轉換與重新整理計算結果的使用者。

操作步驟:

1. 選取您的出生日期表格,然後前往資料> 從表格/範圍,將資料載入適用於 Excel 的 Microsoft Power Query。

2. 在適用於 Excel 的 Microsoft Power Query 編輯器中,選取新增欄位> 自訂欄位

3. 在公式方塊中輸入下列 M 程式碼,以計算年齡(年):

Date.Year(DateTime.LocalNow()) - Date.Year([DateOfBirth])

請依需求將 DateOfBirth 替換為您的欄位名稱。

在 Power Query 中使用公式計算年數

若要計算更詳細的拆分結果(年、月、日),可使用下列方式新增獨立欄位:

let
    Today   = Date.From(DateTime.LocalNow()),
    Birth   = Date.From([Birthday]), Years   = Date.Year(Today) - Date.Year(Birth) -
              (if Date.AddYears(Birth, Date.Year(Today)-Date.Year(Birth)) > Today then 1 else 0),
    AnchorY = Date.AddYears(Birth, Years),
    mDiff   = (Date.Year(Today)-Date.Year(AnchorY))*12 + (Date.Month(Today)-Date.Month(AnchorY)),
    Months  = if Date.AddMonths(AnchorY, mDiff) > Today then mDiff-1 else mDiff,
    AnchorM = Date.AddMonths(AnchorY, Months),
    Days    = Duration.Days(Today - AnchorM)
in
    Text.From(Years) & " years " & Text.From(Months) & " months " & Text.From(Days) & " days"
在 Power Query 中使用公式計算年、月和日

4. 點擊 OK,系統將根據您輸入的程式碼,自動產生包含年齡或年、月、日的欄位。

4. 接著點擊關閉並載入,即可將轉換後的資料返回工作表。

注意事項與疑難排解:

  • 適用於 Excel 的 Microsoft Power Query 能高效處理大型資料集,並在您重新整理時自動重新計算。
  • 若您的出生日期欄位包含無效或空白的資料,請先確認資料完整無誤,再建立自訂欄位。
  • 務必仔細檢閱欄位名稱,並據此調整公式。

適用於 Excel 的 Microsoft Power Query 非常適合希望打造動態且可重複使用解決方案,卻又不想撰寫 Excel 公式或巨集的使用者。不過,此功能在 Excel 2016 之前的版本或 Excel Online(視功能集而定)中可能無法使用。


疑難排解與建議:
無論您選擇哪種年齡計算方式,務必確認來源儲存格已設定為日期格式;若出現非預期結果(例如負數年齡或錯誤值),請仔細檢查計算邏輯。使用公式時,靜態參考日期不會隨時間自動更新,因此請使用 =TODAY()以確保年齡資訊始終最新。VBA 與適用於 Excel 的 Microsoft Power Query 解決方案更適合用於進階、大規模或需定期更新的報表。請根據自身需求謹慎評估,選擇最契合您工作流程的方法。執行巨集或進行大範圍轉換前,務必先儲存檔案,必要時保留備份,以防資料遺失或發生非預期變更。


最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……


Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!

  • 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
  • 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
  • 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!

所有 Kutools 增益集,一個安裝程式

Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用