Excel 教程:日期時間計算(計算差異、年齡、加/減)
在 Excel 中,日期時間計算經常被使用,例如計算兩個日期/時間之間的差異、加減日期時間、根據出生日期獲取年齡等等。 在本教程中,它列出了有關日期時間計算的幾乎場景,並為您提供了相關方法。
本教程的導航 |
1.計算兩個日期/時間之間的差異 |
1.3 使用 Kutools for Excel 計算兩個日期時間之間的差異 |
2. 加減日期和時間 |
3.計算年齡 |
在本教程中,我創建了一些示例來解釋這些方法,您可以在使用以下 VBA 代碼或公式時更改您需要的參考
1.計算兩個日期/時間之間的差異
計算兩個日期或兩次之間的差異可能是您在日常 Excel 工作中遇到的最常見的日期時間計算問題。 以下提供的示例可以幫助您在遇到相同問題時提高效率。
Excel 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 函數:
點擊 國際網絡日 了解它的論點和用法。
計算工作日和假期
要計算單元格 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))
Or
=SUM(INT((WEEKDAY(A12-{1,7})+B12-A12)/7))
媒體推薦 Enter 獲得結果的關鍵。
要計算特定工作日的數量,例如兩個日期之間的星期一,INT 和 WEEKDAY 函數的組合可以幫助您。
單元格 A15 和 B15 是您想要計算星期一之間的兩個日期,請使用公式如下:
=INT((WEEKDAY(A15- 2)-A15 +B15)/7)
媒體推薦 Enter 獲得結果的關鍵。
更改 WEEKDAY 函數中的工作日數以計算不同的工作日:
1 是星期日,2 是星期一,3 是星期二,4 是星期三,5 是星期四,6 是星期五,7 是星期六)
有時,您可能想根據提供的日期了解月份或年份的剩余天數,如下面的屏幕截圖所示:
獲取當月剩余天數
點擊 月 了解論據和用法。
要在單元格 A2 中獲取當前月份的剩余天數,請使用以下公式:
=EOMONTH(A2,0)-A2
媒體推薦 Enter 鍵,然後拖動自動填充手柄以將此公式應用於其他單元格(如果需要)。
小提示: 結果可能顯示為日期格式,只需將它們更改為一般格式或數字格式即可。
獲取當年剩余天數
要在單元格 A2 中獲取當年的剩余天數,請使用以下公式:
=DATE(YEAR(A2),12,31)-A2
媒體推薦 Enter 鍵,然後拖動自動填充手柄以將此公式應用於其他單元格(如果需要)。
要獲得兩次之間的差異,這裡有兩個可以幫助您的簡單公式。
假設在單元格 A2 和 B2 中分別包含 start_time 和 end_time,使用如下公式:
=B2-A2
=TEXT(B2-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(B2-A2)、ABS(TEXT(B2-A2,"hh:mm:ss")),然後將結果格式化為時間。
如果您想像下面的屏幕截圖所示以小時、分鐘或秒為單位計算兩次之間的差異,請按照此部分操作。
獲取兩次之間的小時差
要獲得 A5 和 B5 中兩次之間的小時差,請使用以下公式:
=INT((B5-A5)*24)
媒體推薦 Enter 鍵,然後將時間格式結果格式化為一般或數字。
如果要獲取小數小時差,請使用 (end_time-start_time)*24。
獲取兩次之間的分鐘差
要獲得 A8 和 B8 中兩次之間的分鐘差,請使用以下公式:
=INT((B8-A8)*1440)
媒體推薦 Enter 鍵,然後將時間格式結果格式化為一般或數字。
如果要獲取小數分鐘差,請使用 (end_time-start_time)*1440。
獲取兩次之間的秒差
要獲得 A5 和 B5 中兩次之間的秒差,請使用以下公式:
=(B11-A11)*86400)
媒體推薦 Enter 鍵,然後將時間格式結果格式化為一般或數字。
如果兩次之間的時間差不超過 24 小時,HOUR 函數可以快速獲取這兩次之間的小時差。
點擊 小時 有關此功能的更多詳細信息。
要獲取單元格 A14 和 B14 中時間之間的小時差,請使用 HOUR 函數,如下所示:
=HOUR(B14-A14)
媒體推薦 Enter 獲得結果的關鍵。
start_time 必須小於 end_time,否則,公式返回 #NUM! 錯誤值。
MINUTE 函數可以快速獲取這兩個時間之間的唯一分鐘差,而忽略小時和秒。
點擊 MINUTE 有關此功能的更多詳細信息。
要僅獲取單元格 A17 和 B17 中時間之間的分鐘差,請使用 MINUTE 函數,如下所示:
=MINUTE(B17-A17)
媒體推薦 Enter 獲得結果的關鍵。
start_time 必須小於 end_time,否則,公式返回 #NUM! 錯誤值。
SECOND 函數可以快速獲取這兩個時間之間的唯一秒差,而忽略小時和分鐘。
點擊 第二 有關此功能的更多詳細信息。
要僅獲取單元格 A20 和 B20 中時間之間的秒差,請使用 SECOND 函數,如下所示:
=SECOND(B20-A20)
媒體推薦 Enter 獲得結果的關鍵。
start_time 必須小於 end_time,否則,公式返回 #NUM! 錯誤值。
如果您想將兩個時間之間的差異顯示為 xx 小時 xx 分鐘 xx 秒,請使用如下所示的 TEXT 函數:
點擊 TEXT 來實現這個函數的參數和用法。
要計算單元格 A23 和 B23 中的時間差,請使用以下公式:
=TEXT(B23-A23,"h"" hours ""m"" minutes ""s"" seconds""").
媒體推薦 Enter 獲得結果的關鍵。
注意:
這個公式也只計算不超過24小時的小時差,並且end_time必須大於start_time,否則返回#VALUE! 錯誤值。
如果 mm/dd/yyyy hh:mm:ss 格式有兩次,要計算它們之間的差異,您可以根據需要使用以下公式之一。
獲取兩個日期時間之間的時間差並以 hh:mm:ss 格式返回結果
以單元格 A2 和 B2 中的兩個日期時間為例,請使用公式如下:
=B2-A2
媒體推薦 Enter 鍵,以日期時間格式返回結果,然後將此結果格式化為 並[h]:MM:SS 在自定義類別下 聯繫電話 選項卡 單元格格式 對話。
獲取兩個日期時間之間的差異並返回天、小時、分鐘、秒
以單元格 A5 和 B5 中的兩個日期時間為例,請使用公式如下:
=INT(B5-A5) & " Days, " & HOUR(B5-A5) & " Hours, " & MINUTE(B5-A5) & " Minutes, " & SECOND(B5-A5) & " Seconds "
媒體推薦 Enter 獲得結果的關鍵。
注意:在這兩個公式中,end_datetime 必須大於 start_datetime,否則,公式會返回錯誤值。
首先,您需要知道如何格式化單元格以顯示毫秒:
選擇要顯示毫秒的單元格,然後右鍵選擇 單元格格式 使之成為可能 單元格格式 對話框中選擇 習俗 ,在 類別 在數字選項卡下列出,然後鍵入 hh:mm:ss.000 進入文本框。
使用公式:
這裡要計算單元格 A8 和 B8 中兩次之間的差,使用公式如下:
=ABS(B8-A8)
媒體推薦 Enter 獲得結果的關鍵。
有時,您可能需要計算兩個日期之間的工作時間,不包括週末(週六和周日)。
這裡的工作時間固定為每天 8 小時,要計算單元格 A16 和 B16 中提供的兩個日期之間的工作時間,請使用以下公式:
=NETWORKDAYS(A16,B16) * 8
媒體推薦 Enter 鍵,然後將結果格式化為一般或數字。
有關計算兩個日期之間的工作時間的更多示例,請訪問 在Excel中獲取兩個日期之間的工作時間
如果你有 Excel的Kutools 安裝在 Excel 中,無需記住任何公式即可快速解決 90% 的日期時間差計算。
1.31 通過 Data & Time Helper 計算兩個日期時間之間的差異
要在 Excel 中計算兩個日期時間之間的差異,只需 日期和時間助手 足夠。
1. 選擇放置計算結果的單元格,然後單擊 庫工具 > 公式助手 > 日期和時間助手.
2.在彈出 日期和時間助手 對話框,請遵循以下設置:
- 格紋 差異 選項;
- 在中選擇開始日期時間和結束日期時間 參數輸入 部分,您也可以直接在輸入框中手動輸入日期時間,或點擊日曆圖標選擇日期;
- 從下拉列表中選擇輸出結果類型;
- 預覽結果 結果 部分。
3。 點擊 Ok. 輸出計算結果,並將自動填充手柄拖到您還需要計算的單元格上。
小提示:
如果您想使用 Kutools for Excel 獲取兩個日期時間之間的差異並將結果顯示為天、小時和分鐘,請執行以下操作:
選擇要放置結果的單元格,然後單擊 庫工具 > 公式助手 > 日期及時間 > 計算兩個日期之間的天數、小時數和分鐘數.
然後在 公式助手 對話框,指定開始日期和結束日期,然後單擊 Ok.
差異結果將顯示為天、小時和分鐘。
點擊 日期和時間助手 了解此功能的更多用法。
點擊 Excel的Kutools 了解此加載項的所有功能。
點擊 免費下載 獲得 Kutools for Excel 30 天免費試用
1.32 通過公式助手計算兩個日期時間之間的周末/工作日/特定工作日差異
如果您想快速計算兩個日期時間之間的周末、工作日或特定工作日,Kutools for Excel's 公式助手 小組可以幫助你。
1. 選擇要放置計算結果的單元格,點擊 庫工具 > 統計 > 兩個日期之間的非工作天數/兩個日期之間的工作天數/計算一周中特定日期的數量.
2.在彈出 公式助手 對話框,指定開始日期和結束日期,如果您申請 計算一周中特定日期的數量,您還需要指定工作日。
計算具體的工作日,可以參考註釋用1-7表示週日-週六。
3。 點擊 Ok,然後將自動填充手柄拖到需要計算週末/工作日/特定工作日數量的單元格上(如果需要)。
點擊 Excel的Kutools 了解此加載項的所有功能。
點擊 免費下載 獲得 Kutools for Excel 30 天免費試用
2. 加減日期和時間
除了計算兩個日期時間之間的差異外,加減法也是Excel中正常的日期時間計算。 例如,您可能希望根據產品的生產日期和保存天數來獲取到期日期。
要為日期添加或減去特定天數,這裡有兩種不同的方法。
假設在單元格 A21 中添加 2 天,請選擇以下方法之一來解決它,
方法 1 日期+天數
選擇一個單元格並輸入公式:
=A+21
媒體推薦 Enter 獲得結果的關鍵。
如果要減去 21 天,則將加號 (+) 更改為減號 (-)。
方法 2 選擇性粘貼
1. 在單元格 C2 中輸入要添加的天數,然後按 按Ctrl + C 複製它。
2. 然後選擇要添加 21 天的日期,右鍵單擊以顯示上下文菜單,然後選擇 特殊粘貼....
3。 在裡面 選擇性粘貼 對話框,檢查 加入 選項(如果要減去天數,請檢查 減去 選項)。 點擊 OK.
4. 現在原來的日期變成了 5 位數字,把它們格式化為日期。
要為日期添加或減去月份,可以使用 EDATE 函數。
點擊 教育日期 來研究它的論據和用法。
假設將單元格 A6 中的日期添加 2 個月,使用公式如下:
=EDATE(A2,6)
媒體推薦 Enter 獲得結果的關鍵。
如果要從日期減去 6 個月,請將 6 更改為 -6。
要在日期上加上或減去 n 年,可以使用結合了 DATE、YEAR、MONTH 和 DAY 函數的公式。
假設將單元格 A3 中的日期添加 2 年,請使用以下公式:
=DATE(YEAR(A2) + 3, MONTH(A2),DAY(A2))
媒體推薦 Enter 獲得結果的關鍵。
如果要從日期減去 3 年,請將 3 更改為 -3。
給一個日期加上或減去星期,一般公式是
假設將單元格 A4 中的日期添加 2 週,請使用以下公式:
=A2+4*7
媒體推薦 Enter 獲得結果的關鍵。
如果要從日期減去 4 週,請將加號 (+) 更改為減號 (-)。
在本節中,它介紹瞭如何使用 WORKDAY 函數在給定日期添加或減去工作日,不包括節假日或包括節假日。
請瀏覽 工作日 了解有關其論點和用法的更多詳細信息。
添加工作日,包括假期
在單元格 A2 中是您使用的日期,在單元格 B2 中包含您要添加的天數,請使用以下公式:
=WORKDAY(A2,B2)
媒體推薦 Enter 獲得結果的關鍵。
添加不包括節假日的工作日
在單元格 A5 中是您使用的日期,在單元格 B5 中包含您要添加的天數,在 D5:D8 範圍內列出假期,請使用以下公式:
=WORKDAY(A5,B5,D5:D8)
媒體推薦 Enter 獲得結果的關鍵。
注意:
WORKDAY函數以周六和周日為周末,如果你的周末是周六和周日,你可以應用WOKRDAY.INTL函數,它支持指定週末。
請瀏覽 工作日 閲讀更多的細節。
如果要將工作日減去某個日期,只需將公式中的天數更改為負數即可。
如果您想在日期中添加特定的年月日,結合 DATE、YEAR、MONTH 和 DAYS 函數的公式可以幫到您。
要將 A1 中的日期添加 2 年 30 個月零 11 天,請使用以下公式:
=DATE(YEAR(A11)+1,MONTH(A11)+2,DAY(A11)+30)
媒體推薦 Enter 獲得結果的關鍵。
如果要減去,請將所有加號 (+) 更改為減號 (-)。
此處提供了一些用於在日期時間中添加或減去小時、分鐘或秒的公式。
在日期時間上加或減小時
假設在單元格 A3 中的日期時間(也可以是時間)加上 2 小時,請使用以下公式:
=A2+3/24
媒體推薦 Enter 獲得結果的關鍵。
在日期時間上加或減小時
假設在單元格 A15 中的日期時間(也可以是時間)加上 5 分鐘,請使用以下公式:
=A2+15/1440
媒體推薦 Enter 獲得結果的關鍵。
在日期時間上加或減小時
假設在單元格 A20 的日期時間(也可以是時間)上加上 8 秒,請使用以下公式:
=A2+20/86400
媒體推薦 Enter 獲得結果的關鍵。
假設有一個 Excel 表格記錄了所有員工一周的工作時間,為了計算工資的總工作時間,你可以使用 總和(範圍) 得到結果。 但一般情況下,總和結果將顯示為不超過 24 小時的時間,如下圖所示,您如何才能得到正確的結果?
實際上,您只需要將結果格式化為 [時]:分:秒.
右鍵單擊結果單元格,選擇 單元格格式 在上下文菜單中,並在彈出 單元格格式 對話框中,選擇 習俗 從 blist 中,然後鍵入 [時]:分:秒 進入右側部分的文本框,單擊 OK.
總和的結果將正確顯示。
此處提供了一個長公式,用於根據將特定工作時間數添加到開始日期並排除週末(週六和周日)和節假日來獲取結束日期。
在 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 安裝,只有一個工具 - 日期和時間幫助r 可以解決大多數加減日期時間的計算。
1. 單擊要輸出結果的單元格,然後通過單擊應用此工具 庫工具 > 公式助手 > 日期和時間助手。
2。 在裡面 日期和時間助手 對話框,檢查 加入 選項或 減去 根據需要選擇選項,然後選擇單元格或直接鍵入要使用的日期時間 參數輸入 部分,然後指定要添加或減去的年、月、週、日、小時、分鐘和秒,然後單擊 Ok。 看截圖:
您可以在 結果 部分。
現在結果輸出了,將自動手柄拖到其他單元格上以獲得結果。
點擊 日期和時間助手 了解此功能的更多用法。
點擊 Excel的Kutools 了解此加載項的所有功能。
點擊 費用下載 獲得 Kutools for Excel 30 天免費試用
如果有產品過期日期列表,您可能需要檢查並突出顯示基於今天的過期日期,如下面的屏幕截圖所示。
實際上, 條件格式 可以迅速處理這項工作。
1. 選擇您要查看的日期,然後單擊 首頁
> 條件格式 > 新規則.
2。 在裡面 新格式規則 對話框中選擇 使用公式來確定要格式化的單元格 ,在 選擇規則類型 部分和類型 =B2 進入輸入框(B2是您要檢查的第一個日期),然後單擊 格式 彈出 單元格格式 對話框,然後根據需要選擇不同的格式以突出過期日期。 點擊 OK > OK.
部分產品的保質期是在生產月末或下個月的第一天,如需根據生產日期快速列出保質期,請按此部分操作。
獲取當前月末
這是 B13 單元格中的生產日期,請使用以下公式:
=EOMONTH(B13,0)
媒體推薦 Enter 獲得結果的關鍵。
獲取下個月的第一天
這是 B18 單元格中的生產日期,請使用以下公式:
=EOMONTH(B18,0)+1
媒體推薦 Enter 獲得結果的關鍵。
3.計算年齡
在本節中,它列出了解決如何根據給定日期或序列號計算年齡的方法。
根據生日獲取十進制數的年齡
點擊 年分會 有關其論點和用法的詳細信息。
例如,要根據 B2:B9 列中的生日列表獲取年齡,請使用以下公式:
=YEARFRAC(B2,TODAY())
媒體推薦 Enter 鍵,然後向下拖動自動填充手柄,直到計算出所有年齡。
小提示:
1)您可以根據需要指定小數位 單元格格式 對話。
2) 如果要根據給定的生日計算特定日期的年齡,請將 TODAY() 更改為用雙引號括起來的特定日期,例如 =YEARFRAC(B2,"1/1/2021")
3)如果要根據生日得到下一年的年齡,只需在公式中加1,例如=YEARFRAC(B2,TODAY())+1。
根據生日獲取整數年齡
點擊 達蒂夫 有關其論點和用法的詳細信息。
使用上面的示例,要根據 B2:B9 列表中的生日獲取年齡,請使用以下公式:
=DATEDIF(B2,TODAY(),"y")
媒體推薦 Enter 鍵,然後向下拖動自動填充手柄,直到計算出所有年齡。
小提示:
1) 如果要根據給定的生日計算特定日期的年齡,請將 TODAY() 更改為用雙引號括起來的特定日期,例如 =DATEDIF(B2,"1/1/2021","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,"1/1/2021","Y")& " 年,"&DATEDIF(B12,"1/1/2021","YM")&" 月,"&DATEDIF(B12,"1/1/2021","MD")&"天"。
3.13 按 1 年 1 月 1900 日之前的出生日期計算年齡
在 Excel 中,1 年 1 月 1900 日之前的日期不能作為日期時間輸入或正確計算。 但是,如果您想根據給定的出生日期(1/11900 之前)和死亡日期來計算名人的年齡,那麼只有 VBA 代碼可以幫助您。
1。 按 其他 + 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(birthdate,deathdate),在這種情況下, =年齡函數(B22,C22), 按 Enter 鍵獲取年齡。 如果需要,使用自動填充句柄將此公式應用於其他單元格。
如果你有 Excel的Kutools 安裝在 Excel 中,您可以應用 日期和時間助手 計算年齡的工具。
1. 選擇要放置計算年齡的單元格,然後單擊 庫工具 > 公式助手 > 日期和時間助手.
2。 在裡面 日期和時間助手 對話,
- 1)檢查 年齡 選項;
- 2) 選擇生日單元格或直接輸入生日或點擊日曆圖標選擇生日;
- 3)選擇 今天 選項如果要計算當前年齡,請選擇 指定日期 如果要計算過去或將來的年齡,請選擇並輸入日期;
- 4) 從下拉列表中指定輸出類型;
- 5) 預覽輸出結果。 點擊 Ok.
點擊 日期和時間助手 了解此功能的更多用法。
點擊 Excel的Kutools 了解此加載項的所有功能。
點擊 免費下載 獲得 Kutools for Excel 30 天免費試用
如果有一個 ID 號列表使用前 6 位來記錄出生日期,例如 920315330 表示出生日期是 03/15/1992,如何快速將出生日期放入另一列?
現在我們以單元格 C2 開始的 ID 號列表為例,使用公式如下:
=MID(C2,5,2)&"/"&MID(C2,3,2)&"/"&MID(C2,1,2)
媒體推薦 Enter 鑰匙。 然後向下拖動自動填充手柄以獲得其他結果。
注意:
在公式中,您可以根據需要更改引用。 比如ID號顯示為13219920420392,生日是04/20/1992,可以把公式改成=MID(C2,8,2)&"/"&MID(C2,10,2)&"/ "&MID(C2,4,4) 以獲得正確的結果。
如果有一個身份證號碼列表使用前 6 位來記錄出生日期,例如 920315330 表示出生日期是 03/15/1992,如何在 Excel 中根據每個身份證號碼快速計算年齡?
現在我們以單元格 C2 開始的 ID 號列表為例,使用公式如下:
=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中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
- 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
- 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!