跳到主要內容跳到頁尾

年資、工作日、到期日:日期計算實戰

7 分鐘閱讀Lv.2 中級摘要與日期

用 DATEDIF 算員工年資,用 NETWORKDAYS 和 WORKDAY 搭配假日清單算工作日,再用 EDATE 和 EOMONTH 算合約到期日與月底結帳日。

發布 更新

文章目錄

人資或行政常會遇到三種日期問題:這個人到職多久了、這個專案扣掉假日實際有幾個工作天、這份合約什麼時候到期。直接把日期加 30 或除以 365,結果多半會差一兩天,客戶一問就尷尬了。

今天就用一份假資料,把這三題一次解完,用到的是 DATEDIF、NETWORKDAYS、WORKDAY、EDATE 和 EOMONTH。日期在試算表裡是數字這件事,如果還不熟,可以先看 日期與時間入門。

先看資料

第一份是員工到職日,我在 E1 放了一個「基準日」,這邊假設今天是 2026/10/11:

AB
1員工編號到職日
2E1012019/03/18
3E1022022/08/01
4E1032024/01/15
5E1042025/11/20
6E1052016/10/11
7E1062025/10/12

E1 的內容是 2026/10/11。正式使用時,把 E1 換成 就會每天自己更新。我故意用一格基準日,而不是每條公式都寫 TODAY(),這樣結果才不會明天就變,要重算一次也只改一格。

第二份是假日清單,放在 H 欄,這邊用幾個示範日期:

H
1假日
22026/09/25
32026/10/10
42027/01/01

這三天分別是中秋節、國慶日和元旦。實際要放哪些日子,請以人事行政總處公告的行事曆為準;例如政府機關在國慶日逢週六時另有補假,這裡的日期只是示範格式,也讓你看到假日與週末重疊的情況。

算年資

DATEDIF 可以算兩個日期之間隔了幾年、幾個月或幾天,語法是:

  • 開始日:起算的日期。
  • 結束日:結束的日期。
  • 單位:用雙引號包起來的文字。"Y" 是整年數,"M" 是整月數,"D" 是天數,"YM" 是扣掉整年後剩下的整月數。

我想算 E101 到基準日的年資,整年數是:

Google 試算表公式
fx

E101 到基準日滿幾年

=DATEDIF(B2, $E$1, "Y")

2019/03/18 到 2026/10/11,滿了 7 年。再接上 "YM" 取剩下的月數,用 & 串成一句話:

Google 試算表公式
fx

年資寫成 X年Y個月

=DATEDIF(B2, $E$1, "Y") & "年" & DATEDIF(B2, $E$1, "YM") & "個月"

來看看結果,6 個人往下複製會是:

員工編號年資
E1017年6個月
E1024年2個月
E1032年8個月
E1040年10個月
E10510年0個月
E1060年11個月

先手算一下 E101:2019/03/18 過 7 年是 2026/03/18,再過 6 個月是 2026/09/18,還沒到 10/18,所以是 7 年 6 個月。E105 到職日剛好是 2016/10/11,基準日也是 10/11,所以是整整 10 年。

還想知道剩幾天

官方文件裡有 "MD" 這個單位,意思是扣掉整月之後剩下的天數。不過我個人不用它,月底日期的結果不好預期。我習慣用另一個做法:先用 EDATE(下面會介紹)算出「滿整月的那一天」,再用基準日去減它。

Google 試算表公式
fx

滿整月之後剩下的天數

=$E$1 - EDATE(B2, DATEDIF(B2, $E$1, "M"))

E101 滿 90 個月是 2026/09/18,到 10/11 剩 23 天,所以完整年資是 7 年 6 個月又 23 天。6 個人的天數依序是 23、10、26、21、0、29。這格如果顯示成怪怪的日期,把格式改成「格式」>「數值」>「數字」就可以了。

算工作日

NETWORKDAYS

NETWORKDAYS 會算兩個日期之間有幾個工作日,週六、週日不算,也可以另外給一份假日清單。

  • 開始日、結束日:要算的期間,兩端的日期都會一起算進去。
  • 假日:選填,一個放日期的範圍。

我有兩個專案,要算實際投入的工作天:

ABC
1專案編號開始日結束日
2P012026/09/212026/10/16
3P022026/10/052026/10/16
Google 試算表公式
fx

扣掉週末和假日的工作天數

=NETWORKDAYS(B2, C2, $H$2:$H$4)

P01 的結果是 19,P02 是 10。P01 手算:9/21 是週一,到 10/16 週五剛好 4 個整週,4 × 5 = 20 天,扣掉週五 9/25 中秋節,剩 19 天。如果把第三個參數拿掉,P01 就會變成 20。

P02 有個有趣的地方,示範清單裡的國慶日 2026/10/10 剛好是週六,已經被週末排掉了,所以放不放假日清單都是 10(不含政府機關的補假)。假日落在週末不會被重複扣掉,這邊不用特別處理。

WORKDAY

WORKDAY 方向相反,是知道開始日和要走幾個工作日,問結束日是哪天。

  • 開始日:起算的日期,這一天本身不算。
  • 工作天數:要往後走幾個工作日,負數則往前。
  • 假日:選填,同樣是放日期的範圍。

先用一個小例子手算。2026/10/9 是週五,往後 3 個工作日:週一 10/12 是第 1 天,週二 10/13 是第 2 天,週三 10/14 是第 3 天,所以結果是 2026/10/14。

Google 試算表公式
fx

週五起算,3 個工作日後

=WORKDAY(DATE(2026,10,9), 3)

如果 10/12 剛好放假,那天不算,第 1 天變成 10/13,結果就順延到 2026/10/15。

回到實際的合約,開工日 2026/09/21,工期 20 個工作日:

Google 試算表公式
fx

開工日起算 20 個工作日,排除假日

=WORKDAY(B2, 20, $H$2:$H$4)

這邊的 B2 放 2026/09/21。沒有假日的話,4 週 20 個工作日剛好落在 2026/10/19,但中秋節 9/25 被排掉,要多走一天,所以結果是 2026/10/20。

兩個函式可以互相檢查:WORKDAY 算出來的結束日,丟進 NETWORKDAYS 的話,因為 NETWORKDAYS 連開始日也算進去,當開始日是工作日時,天數會是工作天數加 1。上面這個例子, 會得到 21。

算到期日

EDATE

EDATE 把日期往後(或往前)推幾個整月。

  • 開始日:起算的日期。
  • 月數:要推幾個月,負數是往前。

合約從 2026/10/11 開始,期限 12 個月:

Google 試算表公式
fx

12 個月後的同一天

=EDATE(DATE(2026,10,11), 12)

結果是 2027/10/11。通常合約寫的是「到期日前一天」,所以我會再減 1,變成 2027/10/10。

那如果起算日是月底呢?試用期 3 個月,到職日是 2026/11/30:

Google 試算表公式
fx

月底起算,推 3 個月

=EDATE(DATE(2026,11,30), 3)

2027 年 2 月沒有 30 號,結果會落在該月的最後一天,也就是 2027/02/28,不會跑到 3 月。

EOMONTH

EOMONTH 會回傳某個月的月底。

  • 開始日:用來決定是哪個月。
  • 月數:0 是當月,1 是下個月,-1 是上個月。

發票日是 2026/10/11,月結的話,次月底收款:

Google 試算表公式
fx

發票日的次月月底

=EOMONTH(DATE(2026,10,11), 1)

結果是 2026/11/30。月數改成 0,就是當月月底 2026/10/31。EOMONTH 不用自己判斷這個月是 28、30 還是 31 天,這是我最常拿它來用的地方。

NETWORKDAYS 算的是工作天數;開始、結束還帶有時分,且需要扣午休時,可以看 跨日請假時數計算 的逐日班段交集做法。

為什麼這樣組

年資我選 DATEDIF,而不是天數除以 365,因為閏年會讓除出來的年數在邊界附近差一天。工作日則是看你手上的資料:知道兩端日期就用 NETWORKDAYS,知道工期就用 WORKDAY。

維護上要改的地方不多。新增員工只要把公式往下複製,新一年的假日加在 H 欄清單的最後,再把範圍拉大一點就好。我自己會把假日清單放在獨立的工作表,公式用 假日!A2:A30 這種範圍,留一些空白列給明年用。

如果想做「本月第一天」「最近 N 天」或到期提醒,可以接著看 進階日期計算。

練習

1

年資滿一年的日期

E106 的到職日是 2025/10/12,哪一天年資滿一年?請用 EDATE 寫出來。

2

到專案結束還有幾個工作日

基準日在 E1(2026/10/11,週日),專案結束日是 2026/10/16,請排除 H2:H4 的假日,算出從基準日到結束日有幾個工作日。

試著把自己公司的到職日貼進去,看看年資會不會跟人事系統一致吧!

我是喜特先生,Mr. Sheet,我們下個教學見!

分享:
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

這篇在技能樹的 Lv.2「進階分析」,模組「計算日期與時間差」(第 1/1 篇)。讀完這篇,路線上的下一個模組是「處理與分析數字」。

回到技能樹

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。