免費軟體與線上工具1,417影音、圖片與 PDF9153C 開箱評測895生活、旅遊與遊戲798iPhone 與 Mac547LINE 與社群533Google 服務467Windows 與電腦454Android 手機402Office 教學397網路新知372AI 工具121
Office 教學

Excel 年資計算公式教學,精準算出幾年幾月幾日的日期區間

要在 Excel 精準計算出「N年N月N日」的年資或日期區間,最推薦的方法是使用 DATEDIF 函數,並分別搭配「Y」、「YM」、「MD」參數來取得年、月、日的餘數,最後再用「&」符號將結果合併即可。

Excel 計算日期區間的應用情境與最終效果

前陣子阿湯分享了計算年資的 Excel 範本,很多人都很有興趣,所以我還是流水帳的寫成一則 Excel 教學來跟大家分享。這當然不一定只能用在年資計算,也可以用在計算任意兩個日期與日期之間的差距。比如你想要算你跟另一半在一起多久、結婚多久,或是專案執行了多長的時間之類的,也都用的上。

今天就分享各種方法來計算年資給大家參考,往後在計算時,你就會知道應該用什麼方式計算最適合了。先給大家看一下,我們最終要教的是像下圖這樣,如何正確的算出「幾年幾月幾天」。你可以用今天的日期去回推,也可以指定一個特定的結束日期去計算。

Excel 年資計算最終結果範例,顯示幾年幾月幾天

方法一:使用基本的加減乘除計算天數與年份(暴力解法)

第一個方法就先帶大家來試個暴力解法。不懂函數、不會寫 VBA 都是小事,基本的加減乘除總該會吧?我們直覺一點,直接用「今天的日期」去減掉「要計算的起始日期」。

以這個範例來說,我們可以在儲存格輸入公式,直接把兩個日期的儲存格相減:

=Today()-B2

相減之後,計算日的結果可能不會直接顯示成「幾天」,而是變成奇怪的日期格式。這時候不用慌,只要在該儲存格上點擊滑鼠右鍵,選擇「儲存格格式」,將數值類別改為「通用格式」或「數值」即可,就會像下圖一樣正常顯示相差的天數了。

將 Excel 儲存格格式更改為通用格式或數值以顯示天數

再來,計算「月」的部份也很簡單,一樣用加減乘除搞定它。我們直接在儲存格輸入公式,把剛剛算出來的天數欄位拿來除:

=C2/30

這裡我們直接大約的計算,當作一個月有 30 天,直接把天數除以 30 就好,算出來就會是幾個月。

將天數除以30來概算月份的 Excel 畫面

最後「年」的計算應該不用我多講了。你可以直接在儲存格輸入公式,把剛剛算出來的「月份那欄除以 12」,或者直接用「天數那欄除以 365」都可以。這方法簡單暴力,但缺點就是沒那麼精準,遇到大月、小月或閏年時會有誤差,稍稍可惜一點。

將月份除以12來概算年份的 Excel 畫面

方法二:利用 DATEDIF 函數分別計算總年數、月數與天數

再來第二個方法,就是利用 Excel 內建的函數來達成。首先,如果我們要精準計算相差的「日」數,我們可以使用 DATEDIF 這個函數。請在儲存格中輸入以下公式:

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

這個函數的參數有三個,依序是:起始日期, 結束日期, 顯示內容。最後那個加上雙引號的 "D",就代表我們要顯示計算的結果為「總天數」。

使用 DATEDIF 函數與 D 參數計算總天數的結果

再來大家應該也猜到了,如果是想要計算兩個日期相差的「總月份」的話,一樣在儲存格輸入公式:

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

沒錯,就是將剛剛公式最後面的 "D" 改成 "M" 就好。

使用 DATEDIF 函數與 M 參數計算總月數的結果

如果要計算相差的「總年份」的話,就是改成 "Y"。

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

不過,這函數直接這樣用會有個問題。雖然計算出來的總數是精準的,不過在算月跟年時,它是採用「無條件捨去」法。所以如果後面的小數點,比如實際年資應該是 4.9 年,它不會四捨五入,結果會變成只有 4 年。這在需要顯示「N年N月N日」的時候就不夠用了。

使用 DATEDIF 函數與 Y 參數計算總年數的結果

方法三:進階 DATEDIF 參數用法,精準算出「N年N月N日」

來了,最終解法!阿湯直接分享年、月、日這三欄應該怎麼各別計算出最精準的數字。請在年、月、日的儲存格分別輸入以下公式:

年:=DATEDIF(B2,TODAY(),"Y") 月:=DATEDIF(B2,TODAY(),"YM") 日:=DATEDIF(B2,TODAY(),"MD")

看懂了嗎?其實一樣是用 DATEDIF 這個函數,只是很多人不知道後面的參數還可以這樣組合使用:

  • 計算年:使用 "Y",算出完整的年數。
  • 計算月:使用 "YM",這代表扣除掉完整的年數後,剩下的「零頭月數」。
  • 計算日:使用 "MD",這代表扣除掉完整的年數與月數後,剩下的「零頭天數」。

這樣就能精準的拆解並顯示出相差幾年、幾月、幾日了。

使用 DATEDIF 進階參數精準計算出年、月、日的結果

而最後 F 欄(完整年資)的內容,就單純把前面算出來的 C、D、E 欄合併就好。你可以在儲存格輸入公式,直接用 & 符號將儲存格與文字串連起來(例如:=C2&"年"&D2&"個月"&E2&"天"),就能得到一段完整又精準的年資文字了!

使用 & 符號將年月日欄位合併顯示為一段完整文字

常見問題

Excel 計算日期相減,為什麼結果變成奇怪的日期格式?

這是因為 Excel 預設將計算結果自動判斷為日期格式。只要在該儲存格上點擊滑鼠右鍵,將「儲存格格式」更改為「通用格式」或「數值」,就能正常顯示相差的天數了。

DATEDIF 函數的 Y、M、D 參數代表什麼意思?

在 DATEDIF 函數中,Y 代表計算兩個日期相差的「總年數」,M 代表「總月數」,D 則代表「總天數」。不過要注意,直接使用這些參數時,Excel 會無條件捨去小數點以下的數值。

怎麼在 Excel 精準算出相差幾年「又」幾個月幾天?

可以利用 DATEDIF 函數的進階參數。計算年使用「Y」,計算扣除整年後的剩餘月數使用「YM」,計算扣除年月後的剩餘天數使用「MD」,這樣就能精準算出 N 年 N 月 N 日。

(本文於 2026 年 10 月更新:補充步驟說明與常見問題)

這篇收錄在「Excel 教學總整理」,同一主題的其他教學都依小主題整理在那裡。