Excel 教學:日期時間計算(計算差異、年齡、加減運算)
在 Excel 中,日期與時間的計算應用廣泛,例如計算兩筆日期/時間之間的差異、對日期時間進行加減運算,或根據出生日期推算年齡等。本教學彙整了幾乎所有常見的日期時間計算情境,並提供相應的實用方法供您參考。
本教學的導覽 |
1. 計算兩個日期/時間之間的差異 |
1.23 僅計算兩個時間點之間的小時差異(不超過 24 小時) 1.24 僅計算兩個時間點之間的分鐘差異(不超過 60 分鐘) 1.25 僅計算兩個時間點之間的秒數差異(不超過 60 秒) |
1.3 使用 Kutools for Excel 計算兩個日期時間之間的差異 |
2. 對日期與時間進行加減 |
3. 計算年齡 |
在本教學中,我設計了幾個範例來說明這些方法,當您使用下方的 VBA 程式碼或公式時,可依需求調整參照。
1. 計算兩個日期/時間之間的差異
計算兩個日期或兩段時間之間的差異,可能是您日常 Excel 工作中最常見的日期與時間運算需求。以下範例將有效提升您處理此類問題的效率。
Excel 的 DATEDIF 函數能快速計算兩個日期之間相差的天數、月數、年數及週數。
按此查看更多關於 DATEDIF 函數的詳細資訊
兩個日期之間的天數差異
若要取得儲存格 A2 與 B2 中兩個日期之間的天數差異,請使用下列公式
=DATEDIF(A2,B2,"d")
按下 Enter 鍵,立即取得結果!
兩個日期之間的月數差異
若要取得儲存格 A5 與 B5 中兩個日期之間的月數差異,請使用下列公式
=DATEDIF(A5,B5,"m")
按下 Enter 鍵,立即取得結果!
兩個日期之間的年數差異
若要取得儲存格 A8 與 B8 中兩個日期之間的年數差異,請使用下列公式
=DATEDIF(A8,B8,"y")
按下 Enter 鍵,立即取得結果!
兩個日期之間的週數差異
若要取得儲存格 A11 與 B11 中兩個日期之間的週數差異,請使用下列公式
=DATEDIF(A11,B11,"d")/7
按下 Enter 鍵,立即取得結果!
注意:
1) 當您使用上述公式計算週數差異時,結果可能會以日期格式顯示,請依需求將儲存格格式設定為「一般」或「數字」。
2) 當您使用上述公式計算週數差異時,結果可能會是小數,若您希望取得整數週數,可在公式前加上 ROUNDDOWN 函數,如下所示以取得整數週數差異:
=ROUNDDOWN(DATEDIF(A11,B11,"d")/7,0)
若您只想計算兩個日期之間忽略年份與天數的月數差異(如以下截圖所示),這裡提供一個能協助您的公式。
=DATEDIF(A2,B2,"ym")
按下 Enter 鍵,立即取得結果!
A2 為開始日期,B2 為結束日期。
若您只想計算兩個日期之間忽略年份與月份的天數差異(如以下截圖所示),這裡提供一個能協助您的公式。
=DATEDIF(A5,B5,"md")
按下 Enter 鍵,立即取得結果!
A5 為開始日期,B5 為結束日期。
若您希望計算兩個日期之間的差異,並以「xx 年 xx 個月 xx 天」的格式呈現(如下圖所示),我們也提供了一個實用公式供您使用。
=DATEDIF(A8, B8, "y") &" years, "&DATEDIF(A8, B8, "ym") &" months, " &DATEDIF(A8, B8, "md") &" days"
按下 Enter 鍵,立即取得結果!
A8 為開始日期,B8 為結束日期。
若要自動計算某日期與今天的差異,只需將上述公式中的 end_date 改為 TODAY()。以下以計算過去日期與今天之間的天數差異為例。
=DATEDIF(A11,TODAY(),"d")
按下 Enter 鍵,立即取得結果!
注意:若您要計算未來日期與今天的差異,請將 start_date 改為今天,並將未來日期設為 end_date,如下所示:
=DATEDIF(TODAY(),A14,"d")
請注意:在 DATEDIF 函數中,start_date 必須早於 end_date,否則將傳回 #NUM! 錯誤值。
有時您可能需要計算兩個指定日期之間的工作日天數,並選擇是否包含假日。
在此部分,您將使用 NETWORKDAYS.INTL 函數:
立即點擊 NETWORKDAYS.INTL,掌握其參數與使用方法!
計算包含假日的工作日天數
若要計算儲存格 A2 與 B2 中兩個日期之間包含假日的工作日天數,請使用下列公式:
=NETWORKDAYS.INTL(A2,B2)
按下 Enter 鍵,立即取得結果!
計算不含假日的工作日天數
若要計算儲存格 A2 與 B2 中兩個日期之間的工作日天數,並排除 D5:D9 範圍內的假日,請使用下列公式:
=NETWORKDAYS.INTL(A5,B5,1,D5:D9)
按下 Enter 鍵,立即取得結果!
注意:
上述公式皆將星期六與星期日視為週末;若您有其他週末定義,請依需求調整 【weekend】 參數。
若您想計算兩個日期之間的週末天數,可善用 SUMPRODUCT 或 SUM 函數輕鬆達成目標。
若要計算儲存格 A12 與 B12 中兩個日期之間的週末天數(星期六與星期日):
=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(A12&":"&B12)),2)>5))
或
=SUM(INT((WEEKDAY(A 12-{1,7})+B 12-A12)/7))
按下 Enter 鍵,立即取得結果!
若要計算兩個日期之間特定週幾(例如星期一)的出現次數,可透過 INT 與 WEEKDAY 函數的組合輕鬆達成目標。
儲存格 A15 與 B15 為您欲計算其間星期一出現次數的兩個日期,請使用下列公式:
=INT((WEEKDAY(A 15- 2)-A15 +B15)/7)
按下 Enter 鍵,立即取得結果!
變更 WEEKDAY 函數中的週幾數字即可計算其他週幾的出現次數:
1 為星期日,2 為星期一,3 為星期二,4 為星期三,5 為星期四,6 為星期五,7 為星期六)
有時,您可能想根據提供的日期得知該月或該年的可用天數,如下方截圖所示:
取得目前月份的可用天數
按一下 EOMONTH,立即了解其參數與用法!
若要在儲存格 A2 中取得目前月份的可用天數,請使用下列公式:
=EOMONTH(A2,0)-A2
按下 Enter 鍵後,視需要拖曳自動填滿控制點,即可將此公式套用至其他儲存格。
提示:結果可能會以日期格式顯示,只需將其格式調整為「一般」或「數字」即可。
取得目前年度的可用天數
若要在儲存格 A2 中取得目前年度的可用天數,請使用下列公式:
=DATE(YEAR(A2),12,31)-A2
按下 Enter 鍵後,視需要拖曳自動填滿控制點,即可將此公式套用至其他儲存格。
若要計算兩段時間之間的差異,以下提供兩個簡單易用的公式供您參考。
假設儲存格 A2 和 B2 分別包含開始時間與結束時間,可使用下列公式:
=B 2-A2
=TEXT(B 2-A2,"hh:mm:ss")
按下 Enter 鍵,立即取得結果!
注意:
- 若您使用 end_time - start_time,可在「設定儲存格格式」對話方塊中將結果格式化為所需的時間格式。
- 若您使用 TEXT(end_time-first_time,"time_format"),請在公式中輸入您希望顯示結果的時間格式,例如 TEXT(end_time-first_time,"h") 會傳回 16.
- 若 end_time 小於 start_time,上述兩種公式皆會傳回錯誤值。為解決此問題,您可在這些公式前加上 ABS,例如 ABS(B 2-A2) 或 ABS(TEXT(B 2-A2,“hh:mm:ss“)),再將結果設定為時間格式。
若您希望以小時、分鐘或秒為單位計算兩個時間的差異(如下方截圖所示),請參閱本節說明。
取得兩個時間之間的小時差
若要取得儲存格 A5 與 B5 中兩個時間的小時差,請使用下列公式:
=INT((B 5-A5)*24)
按下 Enter 鍵後,將時間格式的結果設定為「一般」或「數字」格式。
若要取得以小數形式呈現的小時差,請使用公式:(結束時間-開始時間) × 24.
取得兩個時間之間的分鐘差
若要取得儲存格 A8 與 B8 中兩個時間的分鐘差,請使用下列公式:
=INT((B 8-A8)*1440)
按下 Enter 鍵後,將時間格式的結果設定為一般或數字格式。
若要取得分鐘差的小數形式,請使用公式:(結束時間-開始時間) × 1440.
取得兩個時間之間的秒數差
若要取得儲存格 A5 與 B5 中兩個時間的秒數差,請使用下列公式:
=(B 11-A11)*86400)
按下 Enter 鍵後,將時間格式的結果設定為「一般」或「數字」格式。
1.23 僅計算兩個時間點之間的小時差異(不超過 24 小時)
若兩個時間相差不超過 24 小時,HOUR 函數可快速計算出它們之間的小時差。
按一下 HOUR,立即深入了解此函數!
若要取得儲存格 A14 與 B14 中兩個時間的小時差,請使用下列 HOUR 函數:
=HOUR(B 14-A14)
按下 Enter 鍵,立即取得結果!
開始時間必須早於結束時間,否則公式將傳回 #NUM! 錯誤值。
1.24 僅計算兩個時間點之間的分鐘差異(不超過 60 分鐘)
MINUTE 函數可快速取得這兩個時間的分鐘差(忽略小時與秒數)。
點擊 MINUTE,立即深入了解此函數!
若要僅取得儲存格 A17 與 B17 中兩個時間的分鐘差,請使用下列 MINUTE 函數:
=MINUTE(B 17-A17)
按下 Enter 鍵,立即取得結果!
開始時間必須早於結束時間,否則公式將傳回 #NUM! 錯誤值。
1.25 僅計算兩個時間點之間的秒數差異(不超過 60 秒)
SECOND 函數能快速取得這兩個時間的秒數差(忽略小時與分鐘)。
按一下 SECOND,進一步了解此函數。
若要僅取得儲存格 A20 與 B20 中兩個時間的秒數差,請使用下列 SECOND 函數:
=SECOND(B 20-A20)
按下 Enter 鍵,立即取得結果!
開始時間必須早於結束時間,否則公式將傳回 #NUM! 錯誤值。
1.26 計算兩個時間的差異並以「xx 小時 xx 分鐘 xx 秒」格式呈現
若要將兩個時間的差異顯示為「xx 小時 xx 分鐘 xx 秒」,請使用下方所示的 TEXT 函數:
點擊 TEXT,立即了解此函數的參數與用法!
若要計算儲存格 A23 與 B23 中兩個時間的差異,請使用下列公式:
=TEXT(B 23-A23,"h"" hours ""m"" minutes ""s"" seconds""").
按下 Enter 鍵,立即取得結果!
注意:
此公式同樣僅適用於計算不超過 24 小時的時間差,且結束時間必須晚於開始時間,否則將傳回 #VALUE! 錯誤值。
若兩個時間的格式為 mm/dd/yyyy hh:mm:ss,可依需求選用下列任一公式來計算其差異。
取得兩個日期時間的差異,並以 hh:mm:ss 格式呈現結果
以儲存格 A2 與 B2 中的兩個日期時間為例,請使用下列公式:
=B 2-A2
按下 Enter 鍵後,結果會以日期時間格式呈現。請接著在數字索引標籤下的設定儲存格格式對話方塊中,於 [h]:mm:ss 自訂類別設定此格式。

取得兩個日期時間的差異,並以「天、小時、分鐘、秒」格式呈現
以儲存格 A5 與 B5 中的兩個日期時間為例,請使用下列公式:
=INT(B 5-A5) & " Days, " & HOUR(B 5-A5) & " Hours, " & MINUTE(B5-A5) & " Minutes, " & SECOND(B 5-A5) & " Seconds "
按下 Enter 鍵,立即取得結果!
注意:在上述兩種公式中,結束日期時間必須晚於開始日期時間,否則公式將傳回錯誤值。
首先,您需要了解如何設定儲存格格式以顯示毫秒:
選取要顯示毫秒的儲存格,按一下滑鼠右鍵,選擇設定儲存格格式以開啟設定儲存格格式對話方塊;在自訂分類(位於「數字」索引標籤下)的類型文字方塊中,輸入 hh:mm:ss.000. 
使用公式:
以下範例用來計算儲存格 A8 與 B8 中兩個時間的差異,請使用下列公式:
=ABS(B 8-A8)
按下 Enter 鍵,立即取得結果!
有時,您可能需要計算兩個日期之間的工作時數,並排除週末(星期六和星期日)。
此處假設每日工作時數固定為 8 小時,若要計算儲存格 A16 與 B16 中兩個日期之間的工作時間,請使用下列公式:
=NETWORKDAYS(A16,B16) * 8
按下 Enter 鍵後,將結果格式設定為「一般」或「數字」。
如需更多關於計算兩個日期之間工作時間的範例,請參閱 在 Excel 中取得兩個日期之間的工作時數
若您已在 Excel 中安裝 Kutools for Excel,90% 的日期與時間差異計算皆無需記憶任何公式,即可快速完成!
想在 Excel 中輕鬆計算兩個日期時間的差異?立即使用日期時間助手,一步到位!
1. 選取要放置計算結果的儲存格,然後點選 Kutools> 公式助手> 日期時間助手。
2. 在彈出的日期時間助手對話方塊中,請依照下列設定進行操作:
- 勾選差異選項;
- 在參數輸入區段中選取起始與結束的日期時間,您也可以直接在輸入框中手動輸入日期時間,或點擊日曆圖示來選取日期;
- 從下拉列表中選取輸出結果類型;
- 在結果區段中預覽結果。

3. 按一下確定,計算結果會立即輸出,並自動填滿控制點,拖曳至其他需要計算的儲存格即可。
提示:
如果您想取得兩個日期時間之間的差異,並以天、小時和分鐘顯示結果(使用 Kutools for Excel),請依照下列步驟操作:
選取要放置結果的儲存格,然後按一下 Kutools > 公式助手 > 日期與時間 > 計算兩個日期之間的天數、小時數和分鐘數。
接著在公式助手對話方塊中,指定開始日期與結束日期,然後按一下確定。
差異結果將以天、小時及分鐘呈現。
立即點擊日期時間助手,深入了解此功能的使用方式!
立即點擊 Kutools for Excel,全面掌握此增益集的所有功能!
點擊免費下載,立即取得 Kutools for Excel 30 天免費試用!
1.32 使用公式助手計算兩個日期時間之間的週末/工作日/特定星期幾的差異
想快速計算兩個日期時間之間的週末天數、工作天數,或特定星期幾出現的次數?Kutools for Excel 公式助手群組助您輕鬆搞定!
1. 選取要放置計算結果的儲存格,按一下 Kutools > 統計 > 兩個日期間非工作日天數/兩個日期間工作日天數/兩日期間星期幾的天數。
2. 在跳出的公式助手對話方塊中,指定開始日期與結束日期;若您套用兩日期間星期幾的天數,還需一併指定星期幾。
若要計算特定星期幾,請參考附註,以數字 1 至 7 分別代表星期日至星期六。

3. 按一下確定,再視需要將自動填滿控制點拖曳至其他需計算週末/工作日/特定星期幾數量的儲存格上。
立即點擊 Kutools for Excel,全面掌握此外掛的所有功能!
按一下免費下載以取得 Kutools for Excel 的 30 天免費試用
2. 新增或減去日期與時間
除了計算兩個日期時間之間的差異外,在 Excel 中對日期時間進行加減運算也相當常見。例如,您可以根據產品的生產日期與保存天數,輕鬆算出截止日期。
若要為日期加上或減去特定天數,以下是兩種不同的方法。
假設要在儲存格 A2 中的日期新增 21 天,請選擇以下其中一種方法解決:
方法 1:日期+天數
選取一個儲存格並輸入公式:
=A+21
按下 Enter 鍵,立即取得結果!
若要減去 21 天,只需將加號(+)換成減號(——)即可。
方法 2:選擇性粘貼
1. 在儲存格(假設為 C2)中輸入要新增的天數,然後按下 Ctrl+C 進行複製。
2. 接著選取要新增 21 天的日期,按一下滑鼠右鍵開啟快捷選單,然後選取選擇性貼上……。
3. 在選擇性貼上對話方塊中,勾選相加選項(若要減去天數,則勾選)相減選項),再按一下確定。
4. 現在原始日期會顯示為五位數字,請將其格式設定為日期。
若要為日期增加或減少月份,請使用 EDATE 函數。
點擊 EDATE,立即了解其參數與用法!
假設要在儲存格 A2 中的日期新增 6 個月,請使用下列公式:
=EDATE(A2,6)
按下 Enter 鍵,立即取得結果!
若要從日期中減去 6 個月,請將數值改為 -6.
若要對日期新增或減去 n 年,請使用結合 DATE、YEAR、MONTH 和 DAY 函數的公式。
假設要在儲存格 A2 中的日期新增 3 年,請使用下列公式:
=DATE(YEAR(A2) + 3, MONTH(A2),DAY(A2))
按下 Enter 鍵,立即取得結果!
若要從日期中減去 3 年,請將數值改為 -3.
對日期新增或減去週數的一般公式為
假設要在儲存格 A2 中的日期新增 4 週,請使用下列公式:
=A 2+4*7
按下 Enter 鍵,立即取得結果!
若要從日期中減去 4 週,只需將加號(+)改為減號(——)即可。
本節將介紹如何運用 WORKDAY 函數,為指定日期加上或扣除工作日(可選擇是否排除假日)。
請參閱 WORKDAY,了解更多關於其引數與用法的詳細資訊。
新增包含假日的工作日
儲存格 A2 為您使用的日期,儲存格 B2 包含要新增的天數,請使用下列公式:
=WORKDAY(A2,B2)
按下 Enter 鍵,立即取得結果!
新增排除假日的工作日
儲存格 A5 為您使用的日期,儲存格 B5 包含要新增的天數,範圍 D5:D8 列出假日,請使用下列公式:
=WORKDAY(A5,B5,D5:D8)
按下 Enter 鍵,立即取得結果!
注意:
WORKDAY 函數預設將週六與週日視為週末;若您的週末落在其他日期,可改用支援自訂週末設定的 WORKDAY.INTL 函數。

請參閱 WORKDAY.INTL 以獲取更多詳細資訊。
若要從日期中扣除工作日,只需在公式中將天數設為負數即可。
若要為日期加上特定的年、月或日,可透過結合 DATE、YEAR、MONTH 與 DAY 函數的公式輕鬆實現。
若要在 A11 中的日期新增 1 年 2 個月又 30 天,請使用下列公式:
=DATE(YEAR(A11)+1,MONTH(A11)+2,DAY(A11)+30)
按下 Enter 鍵,立即取得結果!
若要執行減法運算,請將所有加號(+)替換為減號(——)。
以下提供一些用於對日期時間加上或減去小時、分鐘或秒的公式。
對日期時間新增或減去小時
假設要在儲存格 A2 中的日期時間(也可以只是時間)新增 3 小時,請使用下列公式:
=A 2+3/24
按下 Enter 鍵,立即取得結果!
對日期時間新增或減去分鐘
假設要在儲存格 A5 中的日期時間(也可以只是時間)新增 15 分鐘,請使用下列公式:
=A 2+15/1440
按下 Enter 鍵,立即取得結果!
對日期時間新增或減去秒
假設要在儲存格 A8 中的日期時間(也可以只是時間)新增 20 秒,請使用下列公式:
=A 2+20/86400
按下 Enter 鍵,立即取得結果!
假設 Excel 中有一個表格,記錄了一週內所有員工的工作時間。若要加總計算薪資所需的總工作時間,您可以使用 SUM(範圍)來取得結果。但一般情況下,加總結果會以不超過 24 小時的時間格式顯示(如下方截圖所示)——該如何取得正確的總工時?
其實,您只需將結果格式設定為 [hh]:mm:ss 即可!
在結果儲存格上按一下滑鼠右鍵,選擇設定儲存格格式,於彈出的設定儲存格格式對話方塊中,從清單選取自訂,並在右側文字框輸入 [hh]:mm:ss,然後點擊確定。

加總結果將正確呈現。
此處提供一個長公式,可根據指定的工作時數,從開始日期推算出結束日期,並自動排除週末(週六與週日)及假日。
在 Excel 表格中,A11 儲存格包含開始日期與時間,B11 儲存格記錄工作時數,E11 與 E13 儲存格分別設定工作日的開始與結束時間,而 E15 儲存格則列出需排除的假日。
請使用下列公式:
=WORKDAY(A11,INT(B11/8)+IF(TIME(HOUR(A11),MINUTE(A11),SECOND(A11))+TIME(MOD(B11,8),MOD(MOD(B11,8),1)*60,0)> $E$13,1,0),$E$15)+IF(TIME(HOUR(A11),MINUTE(A11),SECOND(A11))+TIME(MOD(B11,8),MOD(MOD(B11,8),1)*60,0)>$E$13,$E$11 +TIME(HOUR(A11),MINUTE(A11),SECOND(A11))+TIME(MOD(B11,8),MOD(MOD(B11,8),1)*60,0)-$E$13,TIME(HOUR(A11),MINUTE(A11),SECOND(A11)) +TIME(MOD(B11,8),MOD(MOD(B11,8),1)*60,0))
按下 Enter 鍵,立即取得結果!
若您已安裝 Kutools for Excel,只需使用一項工具——日期與時間助手,即可輕鬆解決絕大多數日期與時間的加減計算問題!
1. 點選您要輸出結果的儲存格,然後依序點擊 Kutools > 公式助手 > 日期時間助手 來套用此工具。
2. 在日期時間助手對話方塊中,先依需求勾選加或減選項,接著選擇儲存格,或直接於參數輸入區段輸入欲使用的日期與時間,再指定要加減的年、月、週、日、小時、分鐘及秒數,最後點擊確定。請參閱截圖:
您可在結果區段中預覽計算結果。
現在結果已輸出,拖曳自動填滿控制點至其他儲存格即可取得相應結果。
點擊日期時間助手,立即了解此功能的使用方式!
按一下 Kutools for Excel 以了解此增益集的所有功能。
點擊免費下載,立即取得 Kutools for Excel 30 天免費試用!
若有一份產品的到期日期清單,您可能希望根據今日日期檢查並標示已過期的日期(如下方截圖所示)。
實際上,使用條件格式就能快速完成這項任務!
1. 選取您要檢查的日期,然後點擊開始> 使用條件格式> 新增規則。
2. 在新增格式設定規則對話方塊中,於選取規則類型區段選擇使用公式決定要格式化哪些儲存格,並在輸入框中輸入 =B2<TODAY()(B2 為您要檢查的第一個日期)。接著點擊格式,開啟設定儲存格格式對話方塊,依需求選擇合適的格式以突顯到期日期,最後點擊確定> 確定。

某些產品的到期日落在生產月份的月底或次月首日。若想根據生產日期快速列出到期日,請參閱本節說明。
取得當月月底
B13 儲存格中有一個生產日期,請使用下列公式:
=EOMONTH(B13,0)
按下 Enter 鍵,立即取得結果!
取得下個月的第一天
B18 儲存格中有一個生產日期,請使用下列公式:
=EOMONTH(B18,0)+1
按下 Enter 鍵,立即取得結果!
3. 計算年齡
本節介紹了根據指定日期或序列號計算年齡的各種方法。

根據出生日期取得小數形式的年齡
立即點擊 YEARFRAC,深入了解其參數與完整用法!
例如,若要根據 B2:B9 欄中的出生日期清單取得年齡,請使用下列公式:
=YEARFRAC(B2,TODAY())
按下 Enter 鍵後,向下拖曳自動填滿控制點,直到所有年齡皆計算完畢。
提示:
1)您可在設定儲存格格式對話方塊中,依需求指定小數位數。
2)若您想根據給定的出生日期計算特定日期的年齡,請將 TODAY() 改為用雙引號括住的特定日期,例如:=YEARFRAC(B2,“【【PH_332】】“)。
3)若您想根據出生日期計算明年的年齡,只需在公式中加 1,例如:=YEARFRAC(B2,TODAY())+1.
根據出生日期取得整數形式的年齡
點擊 DATEDIF,立即了解其參數與用法詳情!
沿用上述範例,若要根據 B2:B9 清單中的出生日期取得年齡,請使用下列公式:
=DATEDIF(B2,TODAY(),"y")
按下 Enter 鍵後,向下拖曳自動填滿控制點,直到所有年齡皆計算完畢。
提示:
1)若您想根據出生日期計算特定日期的年齡,請將 TODAY() 改為用雙引號括住的指定日期,例如:=DATEDIF(B2,“【【PH_337】】“,“y“)。
2)若您想根據出生日期計算明年的年齡,只需在公式中加 1,例如:=DATEDIF(B2,TODAY(),"y")+1.
若您想根據給定出生日期計算年齡,並將結果顯示為「xx 年 xx 個月 xx 天」(如下方截圖所示),以下長公式可協助您達成目標。
若要根據 B12 儲存格中的出生日期取得年、月、日形式的年齡,請使用下列公式:
=DATEDIF(B12,TODAY(),"Y")&" Years, "&DATEDIF(B12,TODAY(),"YM")&" Months, "&DATEDIF(B12,TODAY(),"MD")&" Days"
按下 Enter 鍵取得年齡後,向下拖曳自動填滿控制點至其他儲存格。
提示:
若您想根據給定的出生日期計算特定日期的年齡,請將 TODAY() 替換為以雙引號括住的特定日期,例如:=DATEDIF(B12,“【【PH_345】】“,“Y“)&“ 年, “&DATEDIF(B12,“1/1/2021“,“YM“)&“ 個月, “&DATEDIF(B12,“1/1/2021“,“MD“)&“ 天“。
在 Excel 中,1/1/1900 之前的日期無法作為日期時間輸入或正確計算。但若您想根據給定的出生日期(早於 1/11900)與逝世日期計算某位名人的年齡,僅能透過 VBA 程式碼達成。
1. 按下 Alt+F11 鍵,開啟 Microsoft Visual Basic for Applications 視窗,接著點擊插入選項卡,並選擇模組以建立新模組。
2. 接著,將下方程式碼複製並貼上至新模組中。
VBA:在 1/1/1900 前計算年齡
Public Function AgeFunc(SDate As Variant, EDate As Variant) As Long
'UpdatebyExtendOffice
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 
3. 儲存程式碼後,返回工作表並選取一個儲存格來顯示計算出的年齡,輸入 =AgeFunc(出生日期,死亡日期),在此例中為 =AgeFunc(B22,C22),按下 ENTER 鍵即可立即取得結果。如有需要,還可利用自動填滿控制點,輕鬆將此公式套用至其他儲存格。
若您已在 Excel 中安裝 Kutools for Excel,即可立即使用日期時間助手工具輕鬆計算年齡!
1. 選取您要顯示計算年齡結果的儲存格,然後點擊 Kutools> 公式助手> 日期時間助手。
2. 在日期時間助手對話方塊中,
- 1) 勾選年齡選項;
- 2) 選取出生日期儲存格,或直接輸入出生日期,或點擊日曆圖示以選擇出生日期;
- 3) 若您要計算目前年齡,請選擇今天選項;若要計算過去或未來的年齡,請選擇到某天選項並輸入日期;
- 4) 從下拉列表中指定輸出類型;
- 5) 預覽輸出結果,點擊確定。

點擊日期時間助手,立即掌握此功能的更多實用技巧!
按一下 Kutools for Excel 以全面掌握此外掛的完整功能。
按一下免費下載以取得 Kutools for Excel 的 30 天免費試用

若有一串身分證字號,其前 6 碼代表出生日期(例如 920315330 表示出生日期為 1992 年 3 月 15 日),該如何快速將出生日期提取至另一欄?
現在以從儲存格 C2 開始的身分證字號清單為例,並使用下列公式:
=MID(C2,5,2)&"/"&MID(C2,3,2)&"/"&MID(C2,1,2)
按下 Enter 鍵,再向下拖曳自動填滿控制點,即可取得其他結果。
注意:
在公式中,您可依需求調整參照。例如,若身分證字號顯示為 13219920420392,其生日為 04/20/1992,則可將公式改為 =MID(C2,8,2)&“/“&MID(C2,10,2)&“/“&MID(C2,4,4),即可取得正確結果。
若有一串身分證字號,其前 6 碼代表出生日期(例如 920315330 表示出生日期為 1992 年 3 月 15 日),該如何在 Excel 中根據每個身分證字號快速計算年齡?
現在以從儲存格 C2 開始的身分證字號清單為例,並使用下列公式:
=DATEDIF(DATE(IF(LEFT(C2,2)>TEXT(TODAY(),"YY"),"19"&LEFT(C2,2),"20"&LEFT(C2,2)),MID(C2,3,2),MID(C2,5,2)),TODAY(),"y")
按下 Enter 鍵,再向下拖曳自動填滿控制點,即可取得其他結果。
注意:
在此公式中,若年份小於目前年份,則視為以 20 開頭,例如 200203943 將被解讀為 2020 年;若年份大於目前年份,則視為以 19 開頭,例如 920420392 將被解讀為 1992 年。
更多 Excel 教學:
將多個活頁簿/工作表合併為一個
本教學涵蓋您可能遇到的幾乎所有合併情境,並提供對應的專業解決方案!
拆分文字、數字與日期儲存格(分離至多欄)
本教學分為三部分:拆分文字儲存格、拆分數字儲存格及拆分日期儲存格。每部分皆提供實用範例,助您在遇到相同問題時輕鬆完成拆分作業!
在 Excel 中合併多個儲存格內容而不遺失資料
本教學聚焦於從儲存格的特定位置提取內容,並彙整多種實用方法,協助您在 Excel 中依指定位置輕鬆提取文字或數字。
在 Excel 中比較兩欄以找出相符與差異項目
本文涵蓋您可能遇到的大多數兩欄比較情境,助您輕鬆掌握比對技巧,不容錯過!
- 超強編輯欄(輕鬆編輯多行文字與公式);閱讀版面(輕鬆閱讀與編輯大量儲存格);貼上至篩選範圍……
- 合併儲存格/列/欄並保留資料;分割儲存格內容;合併重複行並加總/平均……防止重複項儲存格;比較範圍……
- 選取重複或唯一列;選取空白列(所有儲存格皆為空);超級查找與模糊搜尋多個活頁簿;隨機選取……
- 精確公式複製多個儲存格而不變更公式參照;自動建立參照至多個工作表;插入項目符號、複選框及更多……
- 收藏並快速插入公式、範圍、圖表與圖片;加密儲存格並設定密碼;建立郵件清單並寄送電子郵件……
- 提取文本、添加文本、刪除某位置字元、移除空格;建立並列印數據分頁統計;在儲存格內容與註解之間轉換……
- 超級篩選(儲存並套用篩選方案至其他工作表);高級排序依月份/週/日、頻率等;特殊篩選依粗體、斜體……
- 合併活頁簿與工作表;合併表格依據關鍵列;分割數據至多個工作表;批次轉換 xls、xlsx 與 PDF……
- 資料透視表依週數、星期幾等分組……顯示未鎖定、選區鎖定以不同顏色標示;突顯包含公式/名稱的儲存格……

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