平時我們很常遇這類時間的計算,像是幾天之後,幾個月前,幾年前……,而這在 Excel 上要如何實現?今天的文章要分享多種不同的方法實現年、月、日的加減計算。
延伸閱讀:【Excel Date】第一天、最後一天:簡單的方法取得當年、月、週的起始、結束日
加減天數(Add or subtract days)
直接加減👍
在 Excel 的 1900日期系統中,我們知道 Excel 在計算日期時,使用的基本單位為「天」,因此在加、減幾日的部分,只需要直接將日期減去、加上所需的天數即可。
DATE()
不推薦此作法
先前的文章中有介紹過日期函數: DATE,可以分別設定年、月、日來生成日期。運用此特性,在函數中進行運算,來實現日期的遷移。
其中使用 YEAR、MONTH、DAY 分別取得起始日的年、月、日之值,將這三個值帶入 DATE 作為參數,再於日期的部分進行加減天數即可。
加減月份(Add or subtract months)
Excel 這裡貼心的提供函數:EDATE,他可以直接用參數的方式去達成月份的遷移
EDATE()👍
=EDATE(a,b)
a:起始日期
b:加減的月份
回傳:對應的日期
注意閏年的部分,於下方介紹
DATE()
這裡和「加減天數」一樣,也可以使用 DATE 來實現「加減月數」:當然也不建議此做法
閏年時 02/29 的認定:EDATE vs. DATE
這裡分別使用這兩個方法去實現「月份遷移」時遇到的問題:
2023/01/29 加 1 個月,理論應該是 2023/02/29,但是 2023 並非閏年,因此不會有 2 月 29 日,使用上就看需求去做調整:
- EDATE 會將該日認定為 「2 月最後一天」,所以會呈現「2023/2/28」
- DATE 函數就不是這麼認定的,它會自動多遷移一天,變成「2023/3/1」
延伸閱讀:【Excel Date】一般日期函數:DATE() 基本應用
加減年份(Add or subtract years)
Excel 並沒有提供函數達到加減幾年的功能,因此這裡只能使用 DATE 的方式土法煉鋼來實現「加減年份」的需求,其中 YEAR、MONTH、DAY 分別取得起始日的年、月、日之值。
=DATE(YEAR(A2)+B2,MONTH(A2),DAY(A2))
同時加減年、月、日(Add or subtract days,months and years)
因為加減年的部分一定要使用 DATE,所以這裡直接統一使用 DATE 的方法就好,看起來簡單,也不用過多的程式運算,如:
=DATE(YEAR(起始日期)+年,MONTH(起始日期)+月,DAY(起始日期)+日)
有些人會想說,這裡分別可以使用最好的方法:年的部分使用 DATE,月的部分使用 EDATE,日的部分直接加減數字。但這樣反而會降低 Excel 的運算效能,而且函數的部分讀起來太複雜:
不建議使用
=DATE(YEAR(起始日期)+年,MONTH(EDATE(起始日期,月)),DAY(起始日期))+日
=EDATE(DATE(YEAR(起始日期)+年,MONTH(起始日期),DAY(起始日期)),月)+日
更多 Excel 文章請至 文章導覽 尋找,也可利用上方「搜尋(Search...)」功能
有任何莫非工具的問題,歡迎至「表單」提問
Excel 是不是很容易
和墨菲一起用 Excel 把工作變簡單
Pingback: 莫非工具 | 文章導覽 - 墨菲莫非
Pingback: 【生日問題公式】生日悖論 |Excel |Date | - 港台免費五行分析網