DATEDIF 是什麼?Excel 日期差計算教學:算年齡、年資、天數一次看懂

在 Excel 裡,DATEDIF 是一個專門用來計算兩個日期之間差多少時間的函數。它很常被拿來算年齡、年資、到職幾年、交往多久,或是兩個日期之間相差幾天、幾個月。很多人第一次看到 DATEDIF 會覺得有點陌生,但其實它的邏輯很簡單:你只要告訴 Excel「開始日期」、「結束日期」以及你想要的單位,它就會幫你算出結果。假如你平常會處理員工資料、會員資料、生日、專案期間或活動日期,那 DATEDIF 其實是非常實用的公式之一。
DATEDIF 的意思是什麼?
DATEDIF 可以拆成「Date Difference」來理解,也就是:
計算兩個日期之間的差距。
簡單講,它就是幫你算:
- 差幾年
- 差幾個月
- 差幾天
例如你想知道一個人現在幾歲,或某位員工到今天為止做了幾年,都可以用 DATEDIF。
DATEDIF 語法怎麼看?
DATEDIF 的基本語法是:
=DATEDIF(開始日期, 結束日期, "單位")
你可以這樣理解:
- 開始日期:從哪一天開始算
- 結束日期:算到哪一天
- 單位:你想要看年、月,還是天
例如:
=DATEDIF(E4,TODAY(),"Y")
這個公式的意思就是:
從 E4 這個日期開始,算到今天,已經滿幾年。
DATEDIF 常用單位有哪些?
這是 DATEDIF 最常見的幾種單位:
1. "Y":相差幾年
如果你想算年齡、年資,最常用的就是這個。
=DATEDIF(E4,TODAY(),"Y")
意思是:
E4 到今天,滿幾年。
例如 E4 是 2000/05/10,今天是 2026/04/11,因為還沒到 5 月 10 日,所以結果會是 25。
2. "M":相差幾個月
如果你想知道總共差幾個完整月份,可以用:
=DATEDIF(E4,TODAY(),"M")
這很適合拿來算:
- 會員加入多久
- 寶寶出生幾個月
- 合約執行了幾個月
3. "D":相差幾天
如果你想知道兩個日期中間總共差幾天,可以用:
=DATEDIF(E4,TODAY(),"D")
這很適合用在:
- 倒數活動天數
- 計算專案經過天數
- 查看兩個日期之間的天數差
DATEDIF 最常見的實際用法
1. 算年齡
假設 A2 是生日:
=DATEDIF(A2,TODAY(),"Y")
這樣就可以直接算出目前滿幾歲。
這比直接用:
=YEAR(TODAY())-YEAR(A2)
更準確,因為 DATEDIF 會判斷今年生日到了沒。
2. 算員工年資
假設 B2 是到職日:
=DATEDIF(B2,TODAY(),"Y")
這樣就能算出員工目前滿幾年年資。
如果你公司有獎金、特休、年資制度,這個公式就很實用。
3. 算活動已經過了幾天
假設 C2 是活動開始日:
=DATEDIF(C2,TODAY(),"D")
這樣可以知道活動開始到今天已經過了多少天。
4. 算兩個日期相差幾個月
假設 D2 是合約開始日,E2 是合約結束日:
=DATEDIF(D2,E2,"M")
這樣可以算出合約中間相差幾個完整月份。
DATEDIF 和 YEAR 函數差在哪?
很多初學者會把下面這兩個公式混在一起:
=YEAR(TODAY())-YEAR(E4)
和
=DATEDIF(E4,TODAY(),"Y")
雖然看起來都像是在算幾年,但差很多。
=YEAR(TODAY())-YEAR(E4)
這個是:
只用年份去減年份。
它不會管日期有沒有真的到。
例如今天是 2026/04/11,E4 是 2020/12/30:
=YEAR(TODAY())-YEAR(E4)
結果會是 6
但實際上從 2020/12/30 到 2026/04/11,還沒有滿 6 年。
=DATEDIF(E4,TODAY(),"Y")
這個才是:
真正去算有沒有滿幾年。
所以在算年齡、年資這種需要精準判斷的情況下,通常 DATEDIF 會比單純用 YEAR 更適合。
使用 DATEDIF 時要注意什麼?
1. 開始日期要早於結束日期
如果你把順序寫反了,公式很容易出錯。
錯誤寫法:
=DATEDIF(TODAY(),E4,"Y")
如果 E4 是過去日期,這樣就可能報錯。
正確概念是:
- 較早的日期放前面
- 較晚的日期放後面
2. 儲存格內容必須是「真正日期」
如果 E4 看起來像日期,但其實是文字,DATEDIF 也可能算不出來。
例如有些資料是手動輸入成文字格式:"2020/05/10"
這種情況 Excel 不一定會把它當成真正日期。
3. 單位一定要加雙引號
像 "Y"、"M"、"D" 都要加上雙引號。
正確:
=DATEDIF(E4,TODAY(),"Y")
錯誤:
=DATEDIF(E4,TODAY(),Y)
DATEDIF 適合哪些人使用?
如果你有以下需求,幾乎都會用到 DATEDIF:
- 想算年齡
- 想算工作年資
- 想算會員加入多久
- 想算兩個日期差幾天
- 想算專案執行多久
- 想算合約期間幾個月
不管你是學生、上班族、行政人員、人資,還是剛開始學 Excel 的初學者,DATEDIF 都算是很值得先學會的日期函數。
DATEDIF 常見範例整理
範例一:算年齡
=DATEDIF(A2,TODAY(),"Y")
意思:A2 到今天滿幾年。
範例二:算相差月數
=DATEDIF(A2,B2,"M")
意思:A2 到 B2 總共差幾個完整月份。
範例三:算相差天數
=DATEDIF(A2,B2,"D")
意思:A2 到 B2 總共差幾天。
常見錯誤觀念
錯誤 1:以為 YEAR 相減就等於年資
不是。那只是年份差,不一定是滿幾年。
錯誤 2:以為日期看起來正常就一定能算
不一定。有時候是文字格式,不是 Excel 真正認得的日期。
錯誤 3:開始日期和結束日期隨便放
不行。順序反了就容易出錯。
結論:DATEDIF 是 Excel 很實用的日期差公式
如果你想在 Excel 裡面計算兩個日期相差多久,DATEDIF 是非常好用的函數。它最大的優點就是可以根據你的需求,直接算出年、月、天的差距。比起單純用 YEAR 去減年份,DATEDIF 在算年齡、年資這類需要精準判斷的情境時更可靠。
你可以把它簡單記成一句話:
DATEDIF 就是幫你算兩個日期之間差多少時間。
如果你是 Excel 初學者,先把這三個記起來就很夠用了:
=DATEDIF(A2,TODAY(),"Y")
=DATEDIF(A2,TODAY(),"M")
=DATEDIF(A2,TODAY(),"D")
只要會這三個,你在處理很多日期相關資料時就會方便很多。
FAQ
DATEDIF 是拿來做什麼的?
DATEDIF 是用來計算兩個日期之間相差多少年、月、天的 Excel 函數。
DATEDIF 可以算年齡嗎?
可以,而且很常用。像這樣:
=DATEDIF(A2,TODAY(),"Y")
就可以算出滿幾歲。
DATEDIF 和 YEAR 有什麼不同?
YEAR 只是抓出年份,DATEDIF 則是真的計算日期之間差多少時間,所以在算年齡、年資時通常更準。
DATEDIF 為什麼會出錯?
常見原因有三個:日期順序寫反、儲存格不是日期格式、單位沒有加雙引號。