Note: The other languages of the website are Google-translated. Back to English

Excel從出生日期獲取或計算年齡

現在,如果您在Excel工作表中有該僱員的出生日期列表,則要計算每個人的年齡。 在Excel中,有一些有用的功能,例如YEARFRAC或DATEDIF,可以幫助您快速輕鬆地確定生日的年齡。


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

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

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

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

=YEARFRAC(B2,TODAY())

然後,將填充手柄向下拖動到要應用此公式的單元格上,所有年齡都已計算並顯示為單元格中的十進制數字,請參見屏幕截圖:

提示:通過使用YEARFRAC函數,計算結果為十進制數,要將年齡數設為整數,應按以下方式組合INT函數:

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

您將獲得整數年齡:


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

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

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

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

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

並且所有年齡都是根據出生日期計算的,請參見屏幕截圖:


根據出生日期(以年,月和日為單位)計算年齡

如果要獲取人員的確切年齡,例如從出生日期到當前日期的年數,月數和天數。 您應將DATEIF函數連接為一個公式,如下所示:

=DATEDIF(B2,TODAY(),"Y") & " Years, " & DATEDIF(B2,TODAY(),"YM") & " Months, " & DATEDIF(B2,TODAY(),"MD") & " Days"

然後,您將獲得如下所示的屏幕截圖的結果:

提示:如果在應用上述公式時要忽略0年,月或日,則可以組合使用IF函數來測試0。 請使用以下公式:

=IF(DATEDIF(B2, TODAY(),"y")=0,"",DATEDIF(B2, TODAY(),"y")&" Years, ")& IF(DATEDIF(B2, TODAY(),"ym")=0,"",DATEDIF(B2, TODAY(),"ym")&" Months, ")& IF(DATEDIF(B2, TODAY(),"md")=0,"",DATEDIF(B2, TODAY(),"md")&" Days")

然後,您將根據需要獲得以下屏幕截圖,所有年齡都以年,月和日為單位顯示,而沒有0值:


在Excel中計算特定日期的年齡

有時,您想獲取從出生日期到特定日期而不是當前日期的年齡,在這種情況下,您只需要在第二個參數中使用特定日期更改TODAY()函數。 如:

=DATEDIF(birthdate, specific_date, "y")
  • birthdate:生日的日期。
  • specific_date:要從出生日期算起年齡的結束日期。
  • y:返回從出生日期到當前日期的完整年份數。

請使用以下公式:

=DATEDIF(B2, C2, "y")

然後,從出生日期到特定日期計算了年齡,如以下屏幕截圖所示:

提示:要獲取確切的年齡,月份和天數,請使用以下公式:

=DATEDIF(B2, C2,"Y") & " Years, "& DATEDIF(B2,C2,"YM") & " Months, "&DATEDIF(B2,C2, "MD") & " Days"


根據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 是出生日期單元格)

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

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

計算從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

並使用以下公式: =年齡(A2,B2) (A2 是出生日期單元格,並且 B2 是死亡日期單元格)以獲取結果,如下圖所示:


具有驚人功能的基於當前日期或特定日期的出生日期來計算年齡

Excel的Kutools 支持方便的工具- 日期和時間助手 此功能可幫助您根據需要根據當前日期或特定日期的出生日期來計算年齡,而無需考慮任何麻煩的公式。 點擊下載Kutools for Excel免費試用!


使用的相對功能:

  • YEARFRAC:
  • 它返回一個十進制值,表示兩個日期之間的小數年。
  • 今天()
  • 它給出了當前日期值。
  • INT()
  • 它返回值的整數部分。
  • 達蒂夫
  • 此函數返回兩個給定日期之間的年,月或天數。

相對年齡計算文章:

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

最佳辦公效率工具

Kutools for Excel-幫助您從人群中脫穎而出

您想快速,完美地完成日常工作嗎? Kutools for Excel具有300個強大的高級功能(合併工作簿,按顏色求和,拆分單元格內容,轉換日期等),並為您節省80%的時間。

  • 專為1500個工作方案而設計,可幫助您解決80%的Excel問題。
  • 每天減少數千次鍵盤和鼠標的點擊,減輕您疲倦的眼睛和手的疲勞。
  • 在3分鐘內成為Excel專家。 不再需要記住任何痛苦的公式和VBA代碼。
  • 30天無限制免費試用。 60天退款保證。 免費升級和支持2年。
Excel功能區(已安裝Kutools for Excel)

Office選項卡-在Microsoft Office(包括Excel)中啟用選項卡式閱讀和編輯

  • 一秒鐘即可在數十個打開的文檔之間切換!
  • 每天為您減少數百次鼠標單擊,告別鼠標手。
  • 查看和編輯多個文檔時,可將您的工作效率提高50%。
  • 像Chrome,Firefox和新的Internet Explorer一樣,為Office(包括Excel)帶來高效選項卡。
Excel的屏幕截圖(已安裝Office選項卡)
按評論排序
留言 (1)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
恐怕您的年齡功能可能有缺陷? 如果您查看 A3 和 B3,該示例說出生於 8 年 15 月 1776 日(15 年 1776 月 1816 日)並於 5 年 21 月 21 日(1816 年 3 月 40 日)去世:如果他們在 39 月生日前 XNUMX 個月的 XNUMX 月去世,他們還不到 XNUMX 歲; 他們仍然是 XNUMX 歲。似乎有些事情可能計算不正確? 我很想看看你的想法,期待你的回复。-Doug H.
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點