如何在 Excel 中計算出生日期早於 1900 年 1 月 1 日的年齡?
在 Excel 中,無法正確輸入與計算 1900 年 1 月 1 日之前的日期。若您需要計算出生與去世日期均早於 1900 年 1 月 1 日的人的年齡,通常無法在 Excel 中取得正確結果。但本文提供一個實用技巧,協助您順利在 Excel 中計算 1900 年 1 月 1 日之前的年齡。
使用 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 後,請依下列步驟操作:
1. 選取要輸出年齡的空白儲存格,然後點擊 Kutools > 公式助手 > 日期時間助手。請參閱截圖:
2. 接著在日期時間助手對話方塊中,勾選「年齡」選項,於「出生 日期」文字方塊中選取欲計算年齡的生日(預設為絕對參照,您可改為相對參照),再勾選「今天」選項,並從下拉選單的「輸出結果類型」中選擇要顯示的結果類型。請參閱截圖:
3. 點擊確定套用此公式,即可立即顯示年齡!如有需要,可拖曳自動填滿控制點至其他需套用此公式的儲存格。請參閱截圖:
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 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 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用