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/302026/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 為什麼會出錯?

常見原因有三個:日期順序寫反、儲存格不是日期格式、單位沒有加雙引號。