Skip to main content

從出生日期計算年齡

Author: Xiaoyang Last Modified: 2025-05-12

如果在Excel工作表中有一份員工出生日期的清單,現在您想為他們每個人計算年齡。在Excel中,有一些有用的函數,例如YEARFRAC或DATEDIF,可以幫助您快速輕鬆地從生日計算出年齡。

doc-get-age-from-birthday-1


使用YEARFRAC函數根據出生日期計算年齡

在Excel中,YEARFRAC函數可以幫助您從給定的出生日期獲取年齡,通用語法是:

=YEARFRAC(出生日期, TODAY())
  • 出生日期: 生日的日期。
  • TODAY(): 此函數返回今天的日期。

因此,請在空白單元格中使用以下公式:

=YEARFRAC(B2,TODAY())

然後,將填充手柄向下拖動到您要應用此公式的單元格,所有年齡都已計算並以小數形式顯示在單元格中,請參見截圖:

doc-get-age-from-birthday-2

提示:使用YEARFRAC函數計算的結果是小數,若要使年齡數字為整數,您應該結合INT函數如下:

=INT(YEARFRAC(B2,TODAY()))

然後,您將獲得整數形式的年齡:

doc-get-age-from-birthday-3


使用DATEDIF函數根據出生日期計算年齡

DATEDIF函數也可以將出生日期轉換為年齡,通用語法是:

=DATEDIF(出生日期, TODAY(), "y")
  • 出生日期: 生日的日期。
  • TODAY(): 此函數返回今天的日期。
  • y: 它返回從出生日期到當前日期的完整年數。

現在,請在空白單元格中輸入或複製以下公式:

=DATEDIF(B2, TODAY(), "y")

然後,所有年齡都已基於出生日期計算,請參見截圖:

doc-get-age-from-birthday-4


根據出生日期以年、月和日計算年齡

如果您想獲取人的確切年齡,例如從他們的出生日期到當前日期有多少年、月和日。您應該將DATEIF函數連接成一個單一公式,如下所示:

=DATEDIF(B2,TODAY(),"Y") & " 年, " & DATEDIF(B2,TODAY(),"YM") & " 月, " & DATEDIF(B2,TODAY(),"MD") & " 日"

然後,您將得到如以下截圖所示的結果:

doc-get-age-from-birthday-5

提示:如果您想在應用上述公式時忽略0年、月或日,您可以結合IF函數來測試0。請使用此公式:

=IF(DATEDIF(B2, TODAY(),"y")=0,"",DATEDIF(B2, TODAY(),"y")&" 年, ")& IF(DATEDIF(B2, TODAY(),"ym")=0,"",DATEDIF(B2, TODAY(),"ym")&" 月, ")& IF(DATEDIF(B2, TODAY(),"md")=0,"",DATEDIF(B2, TODAY(),"md")&" 日")

然後,您將得到如下截圖所示的結果,所有年齡均以年、月和日顯示,沒有0值:

doc-get-age-from-birthday-6


在Excel中特定日期計算年齡

有時候,您希望從出生日期到特定日期而不是當前日期獲取年齡,在這種情況下,您只需將第二個參數中的TODAY()函數更改為特定日期即可。例如:

=DATEDIF(出生日期, 特定日期, "y")
  • 出生日期: 生日的日期。
  • 特定日期: 您希望從出生日期計算年齡的結束日期。
  • y: 它返回從出生日期到當前日期的完整年數。

請使用以下公式:

=DATEDIF(B2, C2, "y")

然後,年齡已經從出生日期計算到特定日期,如下截圖所示:

doc-get-age-from-birthday-7

提示:若要獲取年齡的確切年、月和日,請使用以下公式:

=DATEDIF(B2, C2,"Y") & " 年, "& DATEDIF(B2,C2,"YM") & " 月, "&DATEDIF(B2,C2, "MD") & " 日"

doc-get-age-from-birthday-8


根據1900年之前的出生日期計算年齡

當出生日期在1900年之前時,上述公式無法正確工作,因為當輸入1900年之前的日期時,它會自動以文本格式存儲在Excel中。因此,這裡有一個用戶自定義函數可以幫助您在出生日期早於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是出生日期單元格)

然後將填充手柄向下拖動到您想要獲取年齡的單元格,所有從出生日期到今天的年齡都已計算,請參見截圖:

doc-get-age-from-birthday-9

提示:如果您需要從出生日期到死亡日期而不是當前日期獲取年齡,請應用以下代碼:

從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是死亡日期單元格)以獲取如下截圖所示的結果:

doc-get-age-from-birthday-10


根據當前或特定日期的出生日期計算年齡,具有驚人功能

Kutools for Excel 支持一個方便的工具 - 日期和時間助手功能,該功能可以幫助您根據當前日期或特定日期的出生日期計算年齡,而無需記住任何痛苦的公式。 點擊免費試用 Kutools for Excel!


相關函數:

  • YEARFRAC:
  • 它返回表示兩個日期之間分數年的小數值。
  • TODAY()
  • 它提供當前日期值。
  • INT()
  • 它返回值的整數部分。
  • DATEDIF
  • 此函數返回兩個給定日期之間的年數、月數或天數。

相關年齡計算文章:

  • 在Excel中從身份證號碼計算年齡
  • 假設,您有一份包含13位數字的身份證號碼列表,前6位數字是出生日期。例如,身份證號碼9808020181286表示出生日期是1998/08/02。

最佳的辦公生產力工具

Kutools for Excel - 幫助您脫穎而出

? Kutools AI 助手:基於智能執行生成代碼創建自訂公式分析數據並生成圖表調用 Kutools 函數…來徹底改變數據分析方式。
熱門功能查找、標記或識別重複值  |  刪除空行  |  合併列或單元格而不丟失數據  |  四捨五入無需公式 ...
超級 VLookup多條件  |  多值  |  跨多工作表  |  模糊查找...
高級下拉列表簡易下拉列表  |  依賴下拉列表  |  多選下拉列表...
列管理器添加特定數量的列  |  移動列  |  切換隱藏列的可見狀態  比較列以選擇相同和不同的單元格 ...
特色功能網格聚焦  |  設計檢視  |  增強編輯欄  |  工作簿與工作表管理器 | 資源庫(自動文本)  |  日期提取器  |  合併資料  |  加密/解密儲存格  |  按清單發送電子郵件  |  超級篩選  |  特殊篩選(篩選粗體/斜體/刪除線...) ...
頂級 15 種工具集12 個文字工具添加文本刪除特定字符 ...)  |  50+ 圖表 類型甘特圖 ...)  |  40+ 實用 公式基於生日計算年齡 ...)  |  19 個插入工具插入QR碼從路徑插入圖片 ...)  |  12 個轉換工具金額轉大寫匯率轉換 ...)  |  7 個合併與分割工具高級合併行分割Excel單元格 ...)  |  ... 還有更多

Kutools for Excel 擁有超過 300 種功能,確保您需要的功能只需點擊一下即可實現...


Office Tab - 啟用 Microsoft Office(包括 Excel)中的分頁閱讀和編輯功能

  • 一秒鐘內在數十個打開的文檔之間切換!
  • 每天為您減少數百次鼠標點擊,告別滑鼠手。
  • 當查看和編輯多個文檔時,您的工作效率提高 50%。
  • 為 Office(包括 Excel)帶來高效的分頁功能,就像 Chrome、Edge 和 Firefox 一樣。