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

如何在 Excel 中計算出生日期早於 1900 年 1 月 1 日的年齡?

作者Sun修改日期

在 Excel 中,無法正確輸入與計算 1900 年 1 月 1 日之前的日期。若您需要計算出生與去世日期均早於 1900 年 1 月 1 日的人的年齡,通常無法在 Excel 中取得正確結果。但本文提供一個實用技巧,協助您順利在 Excel 中計算 1900 年 1 月 1 日之前的年齡。

使用 VBA 計算 1/1/1900 之前的年齡

使用 Kutools for Excel 根據生日計算年齡好點子3


藍色右向箭頭氣泡 使用 VBA 計算 1/1/1900 之前的年齡

以下 VBA 程式碼能協助您快速計算 1900 年 1 月 1 日之前的年齡。

1. 請選取一個空白儲存格,輸入該人員的生日;再選取另一個儲存格,輸入今天的日期,或依需求輸入該人員的去世日期。請參閱截圖:
範例資料

2. 接著按下 Alt + F11 鍵,即可開啟 Microsoft Visual Basic for Applications 視窗。

3. 點擊插入 > 模組,並將下方的 VBA 程式碼貼到新開啟的模組視窗中。

VBA:計算 1/1/1900 之前的年齡

Public Function AgeFunc(SDate As Variant, EDate As Variant) As Long
'UpdatebyExtendOffice20160429
    Dim xSMonth As Integer
    Dim xSDay As Integer
    Dim xSYear As Integer
    Dim xEMonth As Integer
    Dim xEDay As Integer
    Dim xEYear As Integer
    Dim xAge As Integer
    If Not GetDate(SDate, xSYear, xSMonth, xSDay) Then
        AgeFunc = "Invalid Date"
        Exit Function
    End If
    If Not GetDate(EDate, xEYear, xEMonth, xEDay) Then
        AgeFunc = "Invalid Date"
        Exit Function
    End If
    xAge = xEYear - xSYear
    If xSMonth > xEMonth Then
        xAge = xAge - 1
    ElseIf xSMonth = xEMonth Then
        If xSDay > xEDay Then xAge = xAge - 1
    End If
    If xAge < 0 Then
        AgeFunc = "Invalid Date"
    Else
        AgeFunc = xAge
    End If
End Function

Private Function GetDate(ByVal DateStr As String, Y As Integer, M As Integer, D As Integer) As Boolean
    Dim I As Long
    Dim K As Long
    Y = 0
    M = 0
    D = 0
    GetDate = True
    On Error Resume Next
    I = InStr(1, DateStr, "/")
    M = CLng(Left(DateStr, I - 1))
    D = CLng(Mid(DateStr, I + 1, InStr(I + 1, DateStr, "/") - I - 1))
    Y = CLng(Right(DateStr, Len(DateStr) - InStrRev(DateStr, "/")))
    If M < 1 Or M > 12 Or D < 1 Or D > 31 Or Y < 1 Then
        GetDate = False
    End If
End Function

4. 選取一個空白儲存格(此處為 C2),輸入公式 =AgeFunc(A2,B2)(A2 為生日,B2 為結束日期),按下 Enter 鍵即可取得年齡,再拖曳自動填滿控制點至所需儲存格。請參閱截圖:
套用使用者自訂函數以取得結果

注意:此 VBA 僅適用於格式為 mm/dd/yyyy 的日期(例如 6/23/1845)來計算年齡。


藍色右向箭頭氣泡 使用 Kutools for Excel 根據生日計算年齡

若生日日期通常落在 1900 年 1 月 1 日之後,您可立即使用 Kutools for Excel日期時間助手功能,快速根據指定生日精準計算年齡!

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

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

1. 選取要輸出年齡的空白儲存格,然後點擊 Kutools > 公式助手 > 日期時間助手。請參閱截圖:
按一下 Kutools 的「日期與時間小幫手」功能

2. 接著在日期時間助手對話方塊中,勾選「年齡」選項,於「出生 日期」文字方塊中選取欲計算年齡的生日(預設為絕對參照,您可改為相對參照),再勾選「今天」選項,並從下拉選單的「輸出結果類型」中選擇要顯示的結果類型。請參閱截圖:
在對話方塊中指定選項

3. 點擊確定套用此公式,即可立即顯示年齡!如有需要,可拖曳自動填滿控制點至其他需套用此公式的儲存格。請參閱截圖:
年齡已計算完成

最佳 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 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用