Skip to main content

Excel 教學:日期時間計算(差異、年齡、加減)

Author: Sun Last Modified: 2025-05-12

在 Excel 中,日期時間計算非常常見,例如計算兩個日期/時間的差異、加減日期時間、根據生日計算年齡等。本教學彙整了幾乎所有日期時間計算的情境,並提供相關方法供您參考。

本教學導覽

1. 計算兩個日期/時間的差異

1.1 計算兩個日期之間的天數/月數/年數差異

1.11 計算兩個日期之間的天數、月數、年數或星期數差異

1.12 計算兩個日期之間僅以月數(忽略年與天)差異

1.13 計算兩個日期之間僅以天數(忽略年與月)差異

1.14 計算兩個日期之間的差異,並返回年、月、天

1.15 計算某日期與今天的差異

1.16 計算兩個日期之間含或不含假期的工作日數

1.17 計算兩個日期之間的週末天數

1.18 計算兩個日期之間特定工作日的天數

1.19 計算本月/本年剩餘天數

1.2 計算兩個時間之間的差異

1.21 計算兩個時間之間的差異

1.22 計算兩個時間之間的時/分/秒差異

1.23 僅計算兩個時間之間的時數差異(不超過24小時)

1.24 僅計算兩個時間之間的分鐘差異(不超過60分鐘)

1.25 僅計算兩個時間之間的秒數差異(不超過60秒)

1.26 計算兩個時間之間的差異,並返回時、分、秒

1.27 計算兩個日期時間之間的差異

1.28 計算含毫秒的時間差異

1.29 計算兩個日期之間(排除週末)的工作時數

1.3 使用 Kutools for Excel 計算兩個日期時間的差異

1.31透過 Data & Time Helper 計算兩個日期時間的差異

1.32透過公式助手計算兩個日期時間間的週末/工作日/特定工作日差異

1.4 若空白則合併兩列

1.41 使用 IF 函數

1.42 使用 VBA

2. 日期與時間的加減運算

2.1 為日期加減天/月/年/週/工作日

2.11 為日期加減天數

2.12 為日期加減月數

2.13 為日期加減年數

2.14 為日期加減週數

2.15 為日期加減工作日(可含或不含假期)

2.16 為日期加減指定年、月、天

2.2 為時間加減時/分/秒

2.21 為日期時間加減時/分/秒

2.22 累加超過24小時的時間

2.23 為日期加上工作時數(排除週末與假期)

2.3 使用 Kutools for Excel 加減日期/時間

2.4 延伸應用

2.41 檢查或選取項目的背景色過期日期

2.42 返回本月底/下月第一天

3. 計算年齡

3.1 根據日期計算年齡

3.11 根據指定生日計算年齡

3.12以年、月、天格式根據生日計算年齡

3.13 計算1900年1月1日前出生的年齡

3.2 使用 Kutools for Excel 根據出生日期計算年齡

3.3 根據序號計算年齡或取得生日

3.31由身份證號取得生日

3.32由身份證號計算年齡

 

在本教學中,我會建立一些範例來說明方法,當你使用下方 VBA 程式碼或公式時,可以依需求更改參照。


1. 計算兩個日期/時間的差異

在日常 Excel 工作中,計算兩個日期或時間的差異是最常見的日期時間計算問題之一。參考下方範例,能幫助你在遇到相同問題時提升效率。

1.1 計算兩個日期之間的天數/月數/年數差異

1.11 計算兩個日期之間的天數、月數、年數或星期數差異

Excel 的 DATEDIF 函數可以快速計算兩個日期之間的天數、月數、年數及星期數差異。
Calculate day/month/year difference between two dates

點擊以了解 DATEDIF 函數的更多細節

兩個日期之間的天數差異

DATEDIF(start_date,end_date,"d")

若要計算 A2 與 B2兩個日期之間的天數差異,請使用以下公式:

=DATEDIF(A2,B2,"d")

按下 Enter 鍵即可取得結果。
calculate days difference between two dates

兩個日期之間的月數差異

DDATEDIF(start_date,end_date,"m")

若要計算 A5 與 B5兩個日期之間的月數差異,請使用以下公式:

=DATEDIF(A5,B5,"m")

按下 Enter 鍵即可取得結果。
calculate months difference between two dates

兩個日期之間的年數差異

DDATEDIF(start_date,end_date,"y")

若要計算 A8 與 B8兩個日期之間的年數差異,請使用以下公式:

=DATEDIF(A8,B8,"y")

按下 Enter 鍵即可取得結果。
calculate  years difference between two dates

兩個日期之間的星期數差異

DDATEDIF(start_date,end_date,"d")/7

若要計算 A11 與 B11兩個日期之間的星期數差異,請使用以下公式:

=DATEDIF(A11,B11,"d")/7

按下 Enter 鍵即可取得結果。
calculate weeks difference between two dates

注意:

1) 使用上述公式計算星期數時,結果可能會以日期格式顯示,請依需求將結果格式化為一般或數字。

2) 使用上述公式計算星期數時,結果可能為小數,若需取得整數週數,可在前方加上 ROUNDDOWN 函數,如下所示以取得整數週數:

=ROUNDDOWN(DATEDIF(A11,B11,"d")/7,0)

1.12 計算兩個日期之間僅以月數(忽略年與天)差異

如果你只想計算兩個日期之間忽略年與天的月數差異,如下圖所示,可使用以下公式協助你。

=DATEDIF(A2,B2,"ym")

按下 Enter 鍵即可取得結果。
Calculate months ignore years and days between two dates

A2 為起始日期,B2 為結束日期。

1.13 計算兩個日期之間僅以天數(忽略年與月)差異

如果你只想計算兩個日期之間忽略年與月的天數差異,如下圖所示,可使用以下公式協助你。

=DATEDIF(A5,B5,"md")

按下 Enter 鍵即可取得結果。
Calculate days ignore years and months between two dates

A5 為起始日期,B5 為結束日期。

1.14 計算兩個日期之間的差異,並返回年、月、天

若要取得兩個日期之間的差異,並以 xx 年 xx 月 xx 天的格式顯示,如下圖所示,也可使用下列公式。

=DATEDIF(A8, B8, "y") &" years, "&DATEDIF(A8, B8, "ym") &" months, " &DATEDIF(A8, B8, "md") &" days"

按下 Enter 鍵即可取得結果。
Calculate difference between two dates and return years, months and days

A8 為起始日期,B8 為結束日期。

1.15 計算某日期與今天的差異

若要自動計算某日期與今天的差異,只需將上述公式中的 end_date 改為 TODAY()。以下以計算過去日期與今天的天數差為例。
Calculate difference between a date and today

=DATEDIF(A11,TODAY(),"d")

按下 Enter 鍵即可取得結果。

注意:若要計算未來日期與今天的差異,請將起始日期設為今天,未來日期作為結束日期,如下:

=DATEDIF(TODAY(),A14,"d")
calculate the difference between a future date and today

請注意,在 DATEDIF 函數中,起始日期必須小於結束日期,否則會返回 #NUM! 錯誤值。

1.16 計算兩個日期之間含或不含假期的工作日數

有時你可能需要計算兩個指定日期之間,含或不含假期的工作日天數。
Calculate workdays with or without holiday between two dates

在此部分,你將使用 NETWORKDAYS.INTL 函數:

NETWORKDAYS.INTL(start_date,end_date,[weekend],[holiday])

點擊 NETWORKDAYS.INTL了解其參數與用法。

計算含假期的工作日數

若要計算 A2 與 B2兩個日期之間含假期的工作日數,請使用以下公式:

=NETWORKDAYS.INTL(A2,B2)

按下 Enter 鍵即可取得結果。
Count workdays with holidays

計算不含假期的工作日數

若要計算 A2 與 B2兩個日期之間含假期,且排除 D5:D9 範圍內假期的工作日數,請使用以下公式:

=NETWORKDAYS.INTL(A5,B5,1,D5:D9)

按下 Enter 鍵即可取得結果。
Count workdays without holidays

注意:

上述公式預設將星期六與星期日視為週末,若你的週末日不同,請依需求調整 [weekend]參數。
change the argument weekend if different weekend days

1.17 計算兩個日期之間的週末天數

若要計算兩個日期之間的週末天數,可使用 SUMPRODUCT 或 SUM 函數協助。

SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(start_date&":"&end_date)),2)>5))
SUM(INT((WEEKDAY(start_date-{1,7})+end_date-start+date)/7))

若要計算 A12 與 B12兩個日期之間的週末(星期六與星期日)天數:

=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(A12&":"&B12)),2)>5))

=SUM(INT((WEEKDAY(A12-{1,7})+B12-A12)/7))

按下 Enter 鍵即可取得結果。
Calculate weekends between two dates

1.18 計算兩個日期之間特定工作日的天數

若要計算兩個日期之間某一特定工作日(如星期一)的天數,可結合 INT 與 WEEKDAY 函數協助。

INT((WEEKDAY(start_date- weekday)-start_date +end_date)/7)

A15 與 B15 為你要計算星期一天數的兩個日期,請使用以下公式:

=INT((WEEKDAY(A15-2)-A15 +B15)/7)

按下 Enter 鍵即可取得結果。
Calculate specific weekday between two dates

在 WEEKDAY 函數中更改工作日數字,即可計算不同的工作日:

1代表星期日,2代表星期一,3代表星期二,4代表星期三,5代表星期四,6代表星期五,7代表星期六。

1.19 計算本月/本年剩餘天數

有時你可能想根據指定日期,查詢本月或本年剩餘天數,如下圖所示:
Calculate remaining days in month/year

取得本月剩餘天數

EOMONTH(date,0)-date

點擊 EOMONTH了解其參數與用法。

若要取得 A2 單元格本月剩餘天數,請使用以下公式:

=EOMONTH(A2,0)-A2

按下 Enter 鍵,並拖曳自動填滿把手以應用此公式至其他單元格(如有需要)。
Get remaining days in current month

提示:結果可能會以日期格式顯示,請將其更改為一般或數字格式。

取得本年剩餘天數

DATE(YEAR(date),12,31)-date

若要取得 A2 單元格本年剩餘天數,請使用以下公式:

=DATE(YEAR(A2),12,31)-A2

按下 Enter 鍵,並拖曳自動填滿把手以應用此公式至其他單元格(如有需要)。
Get remaining days in current year


1.2 計算兩個時間之間的差異

1.21 計算兩個時間之間的差異

若要計算兩個時間之間的差異,這裡有兩個簡單公式可協助你。

end_time-start_time
TEXT(end_time-first_time,"time_format")

假設 A2 與 B2 分別為起始時間與結束時間,請使用下列公式:

=B2-A2

=TEXT(B2-A2,"hh:mm:ss")

按下 Enter 鍵即可取得結果。
Calculate difference between two times

注意:

  • 若使用 end_time-start_time,可於「設定儲存格格式」對話框中將結果格式化為其他時間格式。
  • 若使用 TEXT(end_time-first_time,"time_format"),請在公式中輸入你想要顯示的時間格式,例如 TEXT(end_time-first_time,"h")會返回16。
  • 若結束時間小於起始時間,兩種公式都會返回錯誤值。為解決此問題,可在公式前加上 ABS,例如 ABS(B2-A2)、ABS(TEXT(B2-A2,"hh:mm:ss")),然後將結果格式化為時間。

1.22 計算兩個時間之間的時/分/秒差異

若要計算兩個時間之間的時數、分鐘或秒數差異,如下圖所示,請參考本部分。
Calculate difference between two times in hours/minutes/seconds

取得兩個時間之間的時數差異

INT((end_time-start_time)*24)

若要計算 A5 與 B5兩個時間之間的時數差異,請使用以下公式:

=INT((B5-A5)*24)

按下 Enter 鍵,然後將時間格式結果設為一般或數字。
Get hours difference between two times

若要取得小數時數差異,請使用 (end_time-start_time)*24。

取得兩個時間之間的分鐘差異

INT((end_time-start_time)*1440)

若要計算 A8 與 B8兩個時間之間的分鐘差異,請使用以下公式:

=INT((B8-A8)*1440)

按下 Enter 鍵,然後將時間格式結果設為一般或數字。
Get minutes difference between two times

若要取得小數分鐘差異,請使用 (end_time-start_time)*1440。

取得兩個時間之間的秒數差異

(end_time-start_time)*86400

若要計算 A5 與 B5兩個時間之間的秒數差異,請使用以下公式:

=(B11-A11)*86400)

按下 Enter 鍵,然後將時間格式結果設為一般或數字。
Get seconds difference between two times

1.23 僅計算兩個時間之間的時數差異(不超過24小時)

若兩個時間的差異不超過24小時,可使用 HOUR 函數快速取得時數差異。

點擊 HOUR以了解此函數的更多細節。

若要計算 A14 與 B14兩個時間之間的時數差異,請使用 HOUR 函數如下:

=HOUR(B14-A14)

按下 Enter 鍵即可取得結果。
Calculate hours difference between two times not exceed 24 hours

起始時間必須小於結束時間,否則公式會返回 #NUM! 錯誤值。

1.24 僅計算兩個時間之間的分鐘差異(不超過60分鐘)

MINUTE 函數可快速取得兩個時間之間僅分鐘差異,並忽略時與秒。

點擊 MINUTE以了解此函數的更多細節。

若要計算 A17 與 B17兩個時間之間僅分鐘差異,請使用 MINUTE 函數如下:

=MINUTE(B17-A17)

按下 Enter 鍵即可取得結果。
Calculate minutes difference between two times not exceed 60 minutes

起始時間必須小於結束時間,否則公式會返回 #NUM! 錯誤值。

1.25 僅計算兩個時間之間的秒數差異(不超過60秒)

SECOND 函數可快速取得兩個時間之間僅秒數差異,並忽略時與分。

點擊 SECOND以了解此函數的更多細節。

若要計算 A20 與 B20兩個時間之間僅秒數差異,請使用 SECOND 函數如下:

=SECOND(B20-A20)

按下 Enter 鍵即可取得結果。
Calculate seconds difference between two times not exceed 60 seconds

起始時間必須小於結束時間,否則公式會返回 #NUM! 錯誤值。

1.26 計算兩個時間之間的差異,並返回時、分、秒

若要將兩個時間的差異以 xx 小時 xx 分鐘 xx 秒顯示,請使用如下 TEXT 函數:

TEXT(end_time-start_time,"h"" hours ""m"" minutes ""s"" seconds"")

點擊 TEXT了解此函數的參數與用法。

若要計算 A23 與 B23兩個時間的差異,請使用以下公式:

=TEXT(B23-A23,"h"" hours ""m"" minutes ""s"" seconds"").

按下 Enter 鍵即可取得結果。
Calculate difference between two times and return hours, minutes, seconds

注意:

此公式僅計算不超過24小時的時數差異,且結束時間必須大於起始時間,否則會返回 #VALUE! 錯誤值。

1.27 計算兩個日期時間之間的差異

若有兩個 mm/dd/yyyy hh:mm:ss 格式的日期時間,欲計算其差異,可依需求選擇下列任一公式。

取得兩個日期時間之間的時間差,並以 hh:mm:ss 格式返回

以 A2 與 B2兩個日期時間為例,請使用以下公式:

=B2-A2

按下 Enter 鍵,結果會以日期時間格式返回,請將此結果格式化為 [h]:mm:ss 於「自訂」分類下的 數字 標籤於 設定儲存格格式 對話框。
format the result as time formatting in the dilaog box return the result in hh:mm:ss format

取得兩個日期時間之間的差異,並以天、時、分、秒返回

以 A5 與 B5兩個日期時間為例,請使用以下公式:

=INT(B5-A5) & " Days, " & HOUR(B5-A5) & " Hours, " & MINUTE(B5-A5) & " Minutes, " & SECOND(B5-A5) & " Seconds "

按下 Enter 鍵即可取得結果。
Get difference between two datetimes and return days, hours, minutes, seconds

注意:兩個公式中,結束日期時間必須大於起始日期時間,否則會返回錯誤值。

1.28 計算含毫秒的時間差異

首先,你需要知道如何將儲存格格式化為顯示毫秒:

選取你要顯示毫秒的儲存格,右鍵選擇 「設定儲存格格式」以開啟 對話框,在「數字」標籤下選擇「自訂」分類,並於文字框中輸入hh:mm:ss.000
type this hh:mm:ss.000 format in the dialog box

使用公式:

ABS(end_time-start_time)

若要計算 A8 與 B8兩個時間的差異,請使用以下公式:

=ABS(B8-A8)

按下 Enter 鍵即可取得結果。
type the formula to calculate time difference with milliseconds

1.29 計算兩個日期之間(排除週末)的工作時數

有時你可能需要計算兩個日期之間(排除週末)的工作時數。

NETWORKDAYS(start_date,end_date) * 工作時數

假設每日工作時數為8 小時,若要計算 A16 與 B16兩個日期之間的工作時數,請使用以下公式:

=NETWORKDAYS(A16,B16) *8

按下 Enter 鍵,然後將結果格式化為一般或數字。
Calculate working hours between two dates excluding weekends

更多關於計算兩日期間工作時數的範例,請參考「Excel兩日期間工作時數計算


1.3 使用 Kutools for Excel 計算兩個日期時間的差異

如果你已安裝 Kutools for Excel,90% 的日期時間差異計算都能快速完成,無需記憶任何公式。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1.31透過 Data & Time Helper 計算兩個日期時間的差異

在 Excel 中計算兩個日期時間的差異,只需使用 Date & Time Helper 即可。

1. 選擇要放置計算結果的儲存格,點擊 Kutools >公式助手 > Date & Time helper
click Date & Time helper feature of kutools

2. 在跳出的 Date & Time Helper 對話框中,依下列設定操作:

  1. 勾選「差異」選項;
  2. 參數輸入區選擇起始日期時間與結束日期時間,也可直接手動輸入日期時間,或點擊日曆圖示選擇日期;
  3. 從下拉選單選擇輸出結果類型;
  4. 結果區預覽結果。

specify options in the dilaog box

3. 點擊「確定」。計算結果會輸出,並可拖曳自動填滿把手至其他需要計算的儲存格。

提示:

若要以 Kutools for Excel取得兩個日期時間的差異,並以天、時、分顯示,請依下列步驟操作:

選擇要放置結果的儲存格,點擊 Kutools >公式助手 > 日期時間 > 計算兩日期間的天、時、分
click Count days, hours and minutes between two dates feature

然後在公式助手對話框中,指定起始日期與結束日期,最後點擊確定
specify the cell references in the dialog box

差異結果會以天、時、分顯示。
the difference result is shown as days, hours, and minutes

點擊 Date & Time Helper 了解此功能更多用法。

點擊 Kutools for Excel 了解此外掛的所有功能。

點擊免費下載以獲得 30 天 Kutools for Excel 免費試用

1.32透過公式助手計算兩個日期時間間的週末/工作日/特定工作日差異

若要快速計算兩個日期時間間的週末、工作日或特定工作日數,Kutools for Excel 的公式助手群組可協助你。

1. 選擇要放置計算結果的儲存格,點擊 Kutools > 計數 >兩個日期間非工作日天數兩個日期間工作日天數兩日期間星期幾的天數
select the relative feature

2. 在跳出的公式助手對話框中,指定起始日期與結束日期,若選擇「兩日期間星期幾的天數」,還需指定星期幾。

若要計算特定工作日,可參考說明以1-7代表星期日到星期六。
set cell references in the dialog box 1
set cell references in the dialog box 2

3. 點擊確定,然後拖曳自動填滿把手至其他需要計算週末/工作日/特定工作日的儲存格。

點擊 Kutools for Excel 了解此外掛的所有功能。

點擊免費下載以獲得 30 天 Kutools for Excel 免費試用


2. 日期與時間的加減運算

除了計算兩個日期時間的差異外,加減日期時間也是 Excel 常見的操作。例如,你可能想根據生產日期與保存天數計算到期日。

2.1 為日期加減天/月/年/週/工作日

2.11 為日期加減天數

要為日期加減指定天數,這裡有兩種不同方法。

假設要在 A2 單元格的日期加上21 天,請選擇下列任一方法:

方法一:日期+天數

選擇一個儲存格並輸入公式:

=A+21

按下 Enter 鍵即可取得結果。
add days by date+days

若要減去21 天,只需將加號(+)改為減號(-)。

方法二:選擇性粘貼

1. 在一個儲存格(如 C2)輸入你要加的天數,然後按 Ctrl + C 複製。
copy the number of days to add

2. 選取要加21 天的日期,右鍵顯示選單,選擇「選擇性粘貼...」。
ight-click the selection, and select Paste Special

3. 在「選擇性粘貼」對話框中,勾選「添加」選項(若要減天數,勾選「減去」選項),點擊「確定」
check Add option in the dialog box

4. 原始日期會變成5 位數字,請將其格式化為日期。
format cells to get the result

2.12 為日期加減月數

要為日期加減月數,可使用 EDATE 函數。

EDATE(date, months)

點擊 EDATE了解其參數與用法。

假設要在 A2 單元格的日期加上6 個月,請使用以下公式:

=EDATE(A2,6)

按下 Enter 鍵即可取得結果。
Add or subtract months to a date

若要減去6 個月,請將6 改為 -6。

2.13 為日期加減年數

要為日期加減 n 年,可結合 DATE、YEAR、MONTH 與 DAY 函數。

DATE(YEAR(date) + years, MONTH(date),DAY(date))

假設要在 A2 單元格的日期加上3 年,請使用以下公式:

=DATE(YEAR(A2) +3, MONTH(A2),DAY(A2))

按下 Enter 鍵即可取得結果。
Add or subtract years to a date

若要減去3 年,請將3 改為 -3。

2.14 為日期加減週數

要為日期加減週數,通用公式為:

日期+週數*7

假設要在 A2 單元格的日期加上4週,請使用以下公式:

=A2+4*7

按下 Enter 鍵即可取得結果。
Add or subtract weeks to a date

若要減去4週,請將加號(+)改為減號(-)。

2.15 為日期加減工作日(可含或不含假期)

本節介紹如何使用 WORKDAY 函數為指定日期加減工作日(可排除或包含假期)。

WORKDAY(date,days,[holidays])

前往 WORKDAY了解其參數與用法。

加上含假期的工作日

A2 為日期,B2 為要加的天數,請使用以下公式:

=WORKDAY(A2,B2)

按下 Enter 鍵即可取得結果。
Add workdays including holidays

加上不含假期的工作日

A5 為日期,B5 為要加的天數,D5:D8 為假期清單,請使用以下公式:

=WORKDAY(A5,B5,D5:D8)

按下 Enter 鍵即可取得結果。
Add workdays excluding holidays

注意:

WORKDAY 函數預設將星期六與星期日視為週末,若你的週末為其他日,請使用 WORKDAY.INTL 函數,可自訂週末。
apply WOKRDAY.INTL function to excluding specific days
get the result by WOKRDAY.INTL function

前往 WORKDAY.INTL了解更多細節。

若要為日期減去工作日,只需將天數設為負數。

2.16 為日期加減指定年、月、天

若要為日期加上指定年、月、天,可結合 DATE、YEAR、MONTH、DAY 函數。

DATE(YEAR(date) + years, MONTH(date) + months, DAY(date) + days)

若要在 A11 單元格的日期加上1 年2 個月30 天,請使用以下公式:

=DATE(YEAR(A11)+1,MONTH(A11)+2,DAY(A11)+30)

按下 Enter 鍵即可取得結果。
Add or subtract specific year, month, days to a date

若要減去,請將所有加號(+)改為減號(-)。


2.2 為時間加減時/分/秒

2.21 為日期時間加減時/分/秒

這裡提供一些為日期時間加減時、分、秒的公式。
Add or subtract hours/minutes/seconds to a datetime

為日期時間加減小時

日期時間+小時/24

假設要在 A2 單元格的日期時間(或時間)加上3 小時,請使用以下公式:

=A2+3/24

按下 Enter 鍵即可取得結果。
Add or subtract hours to a datetime

為日期時間加減分鐘

日期時間+分鐘/1440

假設要在 A5 單元格的日期時間(或時間)加上15 分鐘,請使用以下公式:

=A2+15/1440

按下 Enter 鍵即可取得結果。
Add or subtract minutes to a datetime

為日期時間加減秒數

日期時間+秒數/86400

假設要在 A8 單元格的日期時間(或時間)加上20 秒,請使用以下公式:

=A2+20/86400

按下 Enter 鍵即可取得結果。
Add or subtract seconds to a datetime

2.22 累加超過24小時的時間

假設有一個表格記錄員工一週工作時數,若要統計總工時以計算薪資,可用 SUM(區域)取得結果。但一般情況下,累加結果會以不超過24小時的時間顯示,如下圖所示,該如何正確顯示?
Sum times over 24 hours

其實只需將結果格式設為 [hh]:mm:ss 即可。

右鍵點擊結果儲存格,選擇 設定儲存格格式 於選單中,並在跳出的 設定儲存格格式 對話框中,選擇 自訂 於清單中,並輸入 [hh]:mm:ss 於右側文字框,點擊 確定.
right click and select Format Cells  specify the time format in the dialog box

累加結果即會正確顯示。
get the correct result

2.23 為日期加上工作時數(排除週末與假期)

這裡提供一個較長的公式,可根據起始日期加上指定工作時數,並排除週末(星期六、日)及假期,計算結束日期。

在 Excel 表格中,A11 為起始日期時間,B11 為工作時數,E11 與 E13 為工作起始與結束時間,E15 為需排除的假期。
Add working hours to a date excluding weekend and holiday

請使用以下公式:

=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 鍵即可取得結果。
apply a long formula to get the result


2.3 使用 Kutools for Excel 加減日期/時間

若你已安裝 Kutools for Excel,只需一個工具——Date & Time Helper,即可解決大多數日期時間加減計算。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 點擊要輸出結果的儲存格,並點擊 Kutools >公式助手 > Date & Time Helper。
click Date & Time Helper feature of kutools

2. 在 Date & Time Helper 對話框中,依需求勾選「添加」或「減去」選項,然後於參數輸入區選擇儲存格或直接輸入日期時間,接著指定要加減的年、月、週、天、時、分、秒,最後點擊確定。參見截圖:

你可在結果區預覽計算結果。
set options in the dialog box

現在結果已輸出,可拖曳自動填滿把手至其他儲存格取得結果。
drag auto handle over other cells to get the results

點擊 Date & Time Helper了解此功能更多用法。

點擊 Kutools for Excel了解此外掛的所有功能。

點擊免費下載 以獲得 30 天 Kutools for Excel 免費試用


2.4 延伸應用

2.41 檢查或選取項目的背景色過期日期

若有一份產品過期日期清單,你可能想根據今天檢查並選取項目的背景色已過期的日期,如下圖所示。
Check or highlight if a date is expired

其實,使用條件格式即可快速完成此任務。

1. 選取要檢查的日期,點擊「常用」>「使用條件格式」>「 新增規則」。
click Home > Conditional Formatting > New Rule

2. 在 新增格式規則 對話框中,選擇 使用公式決定要設定格式的儲存格選擇規則類型 區段,並輸入 =B2 於輸入框(B2 為你要檢查的第一個日期),然後點擊 格式 以彈出 設定儲存格格式 對話框,選擇不同格式以突出顯示過期日期,然後點擊 確定 > 確定.
specify options in the dialog box  choose one color under the Fill tab

2.42 返回本月底/下月第一天

部分產品的過期日為生產月月底或下月第一天,若要根據生產日期快速列出過期日,請參考本節。

取得本月底

EOMONTH(date,0)

B13 為生產日期,請使用以下公式:

=EOMONTH(B13,0)

按下 Enter 鍵即可取得結果。
Get end of the current month

取得下月第一天

EOMONTH(date,0)+1

B18 為生產日期,請使用以下公式:

=EOMONTH(B18,0)+1

按下 Enter 鍵即可取得結果。
Get 1st day of next month


3. 計算年齡

本節列出如何根據指定日期或序號計算年齡的方法。


3.1 根據日期計算年齡

3.11 根據指定生日計算年齡

Calculate age based on given birthdate

根據生日取得小數年齡

YEARFRAC(birthdate, TODAY())

點擊 YEARFRAC了解其參數與用法。

例如,若要根據 B2:B9 欄的生日取得年齡,請使用以下公式:

=YEARFRAC(B2,TODAY())

按下 Enter 鍵,然後拖曳自動填滿把手直到所有年齡計算完成。
Get age in decimal number based on birthdate

提示:

1) 可於「設定儲存格格式」對話框中指定小數位數。
specify the decimal place in the Format Cells dialog

2) 若要根據指定日期計算年齡,請將 TODAY() 改為雙引號括住的指定日期,如 =YEARFRAC(B2,"1/1/2021")

3) 若要取得明年年齡,只需於公式後加1,如 =YEARFRAC(B2,TODAY())+1。

根據生日取得整數年齡

DATEDIF(birthdate,TODAY(),”y”)

點擊 DATEDIF了解其參數與用法。

以上述範例,若要根據 B2:B9 欄的生日取得年齡,請使用以下公式:

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

按下 Enter 鍵,然後拖曳自動填滿把手直到所有年齡計算完成。
Get age in whole number based on birthdate

提示:

1) 若要根據指定日期計算年齡,請將 TODAY() 改為雙引號括住的指定日期,如 =DATEDIF(B2,"1/1/2021","y")。

2) 若要取得明年年齡,只需於公式後加1,如 =DATEDIF(B2,TODAY(),"y")+1。

3.12以年、月、天格式根據生日計算年齡

若要根據生日計算年齡,並以 xx 年 xx 月 xx 天格式顯示,如下圖所示,可使用下列長公式。
Calculate age in years, month and days format by given birthday

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

若要根據 B12 單元格的生日取得年、月、天格式年齡,請使用以下公式:

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

按下 Enter 鍵取得年齡,然後拖曳自動填滿把手至其他儲存格。
drag the autofill handle down to other cells

提示:

若要根據指定日期計算年齡,請將 TODAY() 改為雙引號括住的指定日期,如 =DATEDIF(B12,"1/1/2021","Y")&" Years, "&DATEDIF(B12,"1/1/2021","YM")&" Months, "&DATEDIF(B12,"1/1/2021","MD")&" Days"。

3.13 計算1900年1月1日前出生的年齡

在 Excel 中,1900 年1 月1 日前的日期無法作為日期時間輸入或正確計算。但若要根據指定生日(1900 年1 月1 日前)與死亡日期計算名人年齡,僅能透過 VBA 程式碼協助。
Calculate age by birth of date before 1/1/1900

1. 按下 Alt + F11 鍵開啟 Microsoft Visual Basic for Applications 視窗,點擊「插入」標籤並選擇「模組」以建立新模組。

2. 複製並貼上下方程式碼至新模組。

VBA:計算1900 年1 月1 日前的年齡

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

copy and paste the code into the module

3. 儲存程式碼,返回工作表,選取儲存格輸入 =AgeFunc(birthdate,deathdate),本例為 =AgeFunc(B22,C22),按下 Enter 鍵取得年齡。如有需要,可拖曳自動填滿把手至其他儲存格。
enter a formula to get the result

3.2 使用 Kutools for Excel 根據出生日期計算年齡

若你已安裝 Kutools for Excel,可使用 Date & Time Helper 工具計算年齡。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 選擇要放置計算年齡的儲存格,點擊 Kutools > 公式助手 > Date & Time helper
click Date & Time helper feature of kutools

2. 在 Date & Time Helper 對話框中,

  • 1) 勾選「年齡」選項;
  • 2) 選擇生日儲存格或直接輸入生日,或點擊日曆圖示選擇生日;
  • 3) 若要計算目前年齡,選擇「今天」選項;若要計算過去或未來年齡,選擇「 指定日期」並輸入日期;
  • 4) 從下拉選單指定輸出類型;
  • 5) 預覽輸出結果,點擊確定

specify the options in the dialog box

點擊 Date & Time Helper 了解此功能更多用法。

點擊 Kutools for Excel 了解此外掛的所有功能。

點擊免費下載以獲得 30 天 Kutools for Excel 免費試用


3.3 根據序號計算年齡或取得生日

Calculate age or get birthdate based on a series number

3.31由身份證號取得生日

若有一份身份證號清單,前6 位數記錄生日,如920315330代表生日為1992/03/15,如何快速將生日提取到另一欄?

以 C2 開始的身份證號清單為例,請使用以下公式:

=MID(C2,5,2)&"/"&MID(C2,3,2)&"/"&MID(C2,1,2)

按下 Enter 鍵,然後拖曳自動填滿把手取得其他結果。
Get birthday from ID number

注意:

在公式中可依需求更改參照。例如,若身份證號為13219920420392,生日為1992/04/20,可將公式改為 =MID(C2,8,2)&"/"&MID(C2,10,2)&"/"&MID(C2,4,4)以取得正確結果。

3.32由身份證號計算年齡

若有一份身份證號清單,前6 位數記錄生日,如920315330代表生日為1992/03/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 鍵,然後拖曳自動填滿把手取得其他結果。
Calculate age from ID number

注意:

本公式中,若年份小於當前年份,則視為20 開頭(如200203943 視為2020 年);若年份大於當前年份,則視為19 開頭(如920420392 視為1992 年)。


更多 Excel 教學:

合併多個工作簿/工作表至一個
本教學列舉你可能遇到的各種合併情境,並提供專業解決方案。

分割文字、數字與日期儲存格(分列)
本教學分為三部分:分割文字儲存格、分割數字儲存格、分割日期儲存格。每部分皆提供不同範例,協助你處理分割問題。

合併多個儲存格內容且不遺失資料
本教學聚焦於在儲存格特定位置提取資料,並彙整多種方法協助你依指定位置提取 Excel文字或數字。

比較兩列資料找出相同與不同
本文涵蓋你可能遇到的各種兩列資料比較情境,希望對你有所幫助。


  • 超級公式欄(輕鬆編輯多行文字和公式);閱讀版面(輕鬆閱讀和編輯大量儲存格);貼上到已篩選區域...
  • 合併儲存格/列/欄並保留數據;分割儲存格內容;合併重複列並求和/平均值... 防止重複儲存格;比較區域...
  • 選擇重複或唯一列;選擇空白列(所有儲存格均為空);在多個工作簿中進行超級查找和模糊查找;隨機選擇...
  • 精確複製多個儲存格而不改變公式引用;自動創建對多個工作表的引用;插入項目符號、核取方塊等...
  • 收藏並快速插入公式、區域、圖表和圖片;使用密碼加密儲存格建立郵件清單並發送電子郵件...
  • 提取文本、添加文本、按位置刪除、刪除空格;創建並打印分頁小計;在儲存格內容和批註之間轉換...
  • 超級篩選(保存並應用篩選方案到其他工作表);高級排序按月/週/日、頻率等;特殊篩選按粗體、斜體...
  • 合併工作簿和工作表;基於關鍵列合併表格;將數據分割到多個工作表批量轉換 xls、xlsx 和 PDF...
  • 資料透視表按週數、星期幾等分組... 用不同顏色顯示未鎖定、已鎖定的儲存格突出顯示包含公式/名稱的儲存格...
kte tab 201905
  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中啟用標籤式編輯和閱讀。
  • 在同一窗口的新標籤中打開和創建多個文檔,而不是在新窗口中。
  • 提高您的生產力 50%,每天減少數百次鼠標點擊!
officetab bottom