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/23 | 2026/10/23 |
在 D2 輸入公式:
=YEARFRAC(B2, C2, 1)結果:1.99817518248175。計算兩日期間的年數。基準 1 採實際天數計算。區間總天數為 730 天,但因跨越的年份包含閏年,系統依規則以年份平均天數作為分母,導致結果略小於 2,回傳約 1.998175。
範例 2:專案經過年度比例
計算專案執行期間佔了一年的多少比例。
| 專案名稱 | 開始日期 | 結束日期 |
|---|---|---|
| 系統開發 | 2026/01/01 | 2026/07/01 |
在 D2 輸入公式:
=YEARFRAC(B2, C2, 0)結果:0.5。採用預設的 US (NASD) 30/360 計算基準(參數為 0),每月以 30 天計,半年剛好是 180 天。180 天除以 360 天,計算出比例為 0.5。
範例 3:精確年齡計算
計算精確的年齡(包含小數點後的比例),常應用於保險或醫療資料。
| 客戶姓名 | 出生年月日 | 評估基準日 |
|---|---|---|
| 陳怡君 | 1996/04/23 | 2026/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 函數字典」。




