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

Excel YEARFRAC 函數用法:計算兩個日期之間相差的年數比例

YEARFRAC 函數可以計算兩個日期之間相距的「年數比例」。無論是計算員工的精確年資、專案經過的年度比例,或是按天數拆分的財務利息,都能透過這個函數快速得出帶有小數的年數。

Excel YEARFRAC 函數語法

=YEARFRAC(起始日期, 結束日期, [計算基準])
參數必填說明
起始日期是代表期間起點的日期,建議使用 DATE 函數或參照含有日期的儲存格。
結束日期是代表期間終點的日期。
計算基準選填指定計算天數的基準。0 或省略代表 US (NASD) 30/360,1 代表實際天數/實際天數,2 代表實際天數/360,3 代表實際天數/365,4 代表歐洲 30/360。

回傳:代表年數比例的十進位小數(例如 0.5 代表半年)。

適用版本:Excel 2007 以上版本、Microsoft 365 皆有支援。

YEARFRAC 函數範例

範例 1:員工年資計算

計算員工到結算日的精確年資。

員工姓名到職日結算日
王小明2024/10/232026/10/23

在 D2 輸入公式:

=YEARFRAC(B2, C2, 1)

結果:1.99817518248175。計算兩日期間的年數。基準 1 採實際天數計算。區間總天數為 730 天,但因跨越的年份包含閏年,系統依規則以年份平均天數作為分母,導致結果略小於 2,回傳約 1.998175。

範例 2:專案經過年度比例

計算專案執行期間佔了一年的多少比例。

專案名稱開始日期結束日期
系統開發2026/01/012026/07/01

在 D2 輸入公式:

=YEARFRAC(B2, C2, 0)

結果:0.5。採用預設的 US (NASD) 30/360 計算基準(參數為 0),每月以 30 天計,半年剛好是 180 天。180 天除以 360 天,計算出比例為 0.5。

範例 3:精確年齡計算

計算精確的年齡(包含小數點後的比例),常應用於保險或醫療資料。

客戶姓名出生年月日評估基準日
陳怡君1996/04/232026/10/23

在 D2 輸入公式:

=YEARFRAC(B2, C2, 0)

結果:30.5。採用預設的 30/360 基準(參數設定為 0),計算 1996/04/23 到 2026/10/23 的年齡。期間相距 30 年又 6 個月,因此得出 30.5 歲。

使用 YEARFRAC 的技巧與注意事項

  • 如果起始日期晚於結束日期,YEARFRAC 函數依然會回傳正數,不會產生負值。
  • 建議將第三個參數(計算基準)設定為 1(實際天數/實際天數),以獲得最符合日常認知的準確年數比例。
  • 若要計算兩個日期相差的完整年數(無條件捨去小數),可以搭配 INT 函數使用,或者改用 DATEDIF 函數。

YEARFRAC 常見錯誤與解決方法

錯誤原因解決方法
#VALUE!起始日期或結束日期不是有效的 Excel 日期格式(例如純文字的「2026.10.23」)。確保儲存格內的資料為有效的日期格式,或使用 DATE 函數來輸入日期。
#NUM!計算基準參數輸入了 0 到 4 以外的數字。檢查第三個參數,只能填寫 0、1、2、3 或 4,或者直接省略不填。

Google 試算表可以用 YEARFRAC 嗎?

Google 試算表完全支援 YEARFRAC 函數,語法與參數定義和 Excel 完全相同。

下載 YEARFRAC 範例檔

上面的範例都整理在這個檔案裡,每個範例一個工作表,黃色格子是公式,可以直接改資料看結果變化:YEARFRAC 範例.xlsx(範例公式都在試算表軟體實際計算過)。

常見問題

YEARFRAC 算出來的數字為什麼跟我想的不一樣?

可能是因為預設的計算基準(參數為 0 或省略)是採用一年 360 天、一個月 30 天來計算。如果需要精確的實際天數比例,請將第三個參數設定為 1。

如果結束日期比起始日期早,會發生錯誤嗎?

不會。YEARFRAC 會自動計算兩個日期之間的絕對差距,無論哪個日期在前,計算出來的結果都會是正數。

可以用這個函數來算年齡嗎?

可以。將出生日期設為起始日期,今天日期設為結束日期,就能算出帶有小數的精確年齡。若只需要整數歲數,可在外面包一層 INT 函數,或改用 DATEDIF 函數。

相關函數

這篇收錄在「Excel 函數字典」。