目錄
ToggleExcel 日期公式基礎概念
在Excel中,日期並非以「年/月/日」的字串儲存,而是以「序列值」的方式記錄。每個日期對應一個整數,這個數字代表自某個基準日(通常為一九零零年一月一日)起經過的天數。例如,數值「1」代表基準日,「2」代表隔天。時間則以小數表示(例如0.5代表中午十二點)。這種設計讓日期之間的加減、排序、運算變得直觀且高效。
常見日期格式:
– yyyy/mm/dd(如2023/05/01)
– yyyy-mm-dd(如2023-05-01)
– mm/dd/yyyy(如05/01/2023)
– 日期加時間(如2023/05/01 14:30)
日期與時間的差異:
日期為整數,時間為小數,兩者可合併運算。例如「2023/05/01 12:00」的儲存值為「44923.5」。
應用情境:
在專案管理、考勤、財務報表等場景,正確理解Excel日期儲存方式,有助於避免公式錯誤與數據混亂。
常用Excel日期函數總覽
TODAY()與NOW()函數
=TODAY()
:回傳目前系統日期(不含時間)。=NOW()
:回傳目前系統日期與時間。
應用案例:
在專案進度表中自動顯示今日日期,或於打卡記錄自動標記時間。
注意事項:
這兩個函數會隨檔案重新計算而更新,若需保留某一時點的日期,建議複製並貼上為值。
DATE()函數
=DATE(年, 月, 日)
:根據指定的年、月、日組合成一個有效日期。
進階應用:
可搭配YEAR()
、MONTH()
、DAY()
分解與重組日期。例如,將某日期加三個月:
=DATE(YEAR(A1), MONTH(A1)+3, DAY(A1))
常見錯誤:
月份超過12或小於1時,Excel會自動進位或倒退。例如,=DATE(2023, 15, 10)
實際為隔年三月十日。
YEAR()、MONTH()、DAY()函數
=YEAR(日期)
:取得年份=MONTH(日期)
:取得月份=DAY(日期)
:取得日
實務範例:
計算年齡:
=YEAR(TODAY()) - YEAR(出生日期)
(僅計算年份,未考慮生日是否已過)
進階應用:
可用於分解日期欄位,方便進行分類、統計或條件篩選。
EDATE()、EOMONTH()函數
=EDATE(起始日期, 月數)
:取得起始日期往前/後指定月數的同日=EOMONTH(起始日期, 月數)
:取得起始日期往前/後指定月數的月底
實務案例:
財務人員常用於計算合約到期日、分期付款日期。例如,合約自2023/05/15起,三個月後到期:
=EDATE("2023/05/15", 3)
注意事項:
若起始日為月底,EDATE回傳的日子可能因月份天數不同而變動。
進階日期運算與應用
日期加減(天、月、年、週)
直接加減天數:
=起始日期 + 天數
例如,A1為2023/05/01,加7天:
=A1 + 7
加減月數/年數:
建議使用EDATE()
或DATE()
函數,避免月份天數不一致造成錯誤。
產業應用:
排定專案里程碑、計算保固到期日、排班表自動產生每週日期。
DATEDIF函數(計算間隔/年齡)
- 語法:
=DATEDIF(開始日期, 結束日期, "單位")
- 單位:”Y”(年)、”M”(月)、”D”(天)、”MD”(天數差)、”YM”(月數差)、”YD”(天數差)
年齡計算範例:
=DATEDIF(出生日期, TODAY(), "Y")
常見陷阱:
DATEDIF為舊版函數,部分新版本Excel不顯示自動提示,需手動輸入。
WEEKDAY、WEEKNUM函數(判斷星期幾/週次)
=WEEKDAY(日期, [類型])
:回傳星期幾(1~7),類型可設定週起始日=WEEKNUM(日期, [類型])
:回傳該日期為當年第幾週
應用案例:
自動判斷專案截止日是否落在週末,或統計每週進度。
判斷是否為週末:
=IF(OR(WEEKDAY(A1,2)=6, WEEKDAY(A1,2)=7), "週末", "平日")
(類型2代表週一為1)
TEXT、DATEVALUE、TIMEVALUE(日期格式轉換)
=TEXT(日期, "格式")
:將日期轉為指定格式文字=DATEVALUE(文字)
:將文字轉為日期=TIMEVALUE(文字)
:將文字轉為時間
常見應用:
將「2023-05-01」轉為「2023年5月1日」:
=TEXT(A1, "yyyy年m月d日")
常見錯誤:
若文字格式不符本地日期設定,DATEVALUE可能無法正確轉換。
常見問題與錯誤排解
日期格式亂掉怎麼辦?
- 檢查儲存格格式是否為「日期」或「自訂」。
- 若顯示為數字(如44923),可右鍵→儲存格格式→選擇「日期」。
- 若日期顯示####,通常是欄寬不足,調整欄寬即可。
日期儲存格顯示####或錯誤值的解決方法
-
:欄寬不足,請拉寬欄位。
-
VALUE!:輸入值非有效日期,檢查格式或公式參數。
跨表/跨工作簿日期運算注意事項
- 跨表引用時,需確認兩表的日期格式一致。
- 若不同地區設定(如美式mm/dd/yyyy與台式yyyy/mm/dd),可能導致錯誤,建議統一格式或用DATEVALUE轉換。
實用案例與應用情境
計算專案截止日/自動提醒
在專案管理中,經常需根據啟動日自動計算各階段截止日。例如,啟動日加30天為A階段截止日:
=啟動日 + 30
若需自動判斷是否逾期:
=IF(截止日 < TODAY(), "逾期", "進行中")
結合Monday.com等專案管理工具,可將Excel日期公式產生的截止日匯入,實現自動提醒與進度追蹤。
計算年齡、工齡、服務年資
HR常需計算員工年齡或工齡,可用DATEDIF:
=DATEDIF(到職日, TODAY(), "Y")
若需更精確(含月、日):
=DATEDIF(到職日, TODAY(), "Y") & "年" & DATEDIF(到職日, TODAY(), "YM") & "個月"
自動產生每月/每週日期清單
可利用公式自動產生一系列日期。例如,A1為起始日,A2輸入=A1+1
,向下拖曳即可產生連續日期。
若需每週一清單,可用=A1+7
。
推薦工具提升日期處理效率
在大型專案或團隊協作中,僅靠Excel管理日期易出現版本混亂、提醒不足等問題。
結合Monday.com、ClickUp等專案管理工具,可將Excel日期公式產生的時程匯入,實現自動化提醒、進度追蹤與多方協作。
這類工具支援與Excel資料串接,並可自動根據截止日發送通知,顯著提升專案管理效率。
常見FAQ
Q1:為什麼日期公式結果顯示為數字?
A:Excel以序列值儲存日期,請將儲存格格式設為「日期」即可正常顯示。
Q2:如何將文字日期(如「2023-05-01」)轉為可運算的日期?
A:可用=DATEVALUE("2023-05-01")
,或先將儲存格格式設為「日期」。
Q3:DATEDIF顯示錯誤怎麼辦?
A:請確認參數順序(開始日、結束日),且開始日不得晚於結束日。
Q4:如何自動判斷今天是否為假日或週末?
A:可搭配WEEKDAY函數判斷,若需判斷國定假日,需自訂假日清單並用VLOOKUP等函數比對。
Q5:日期加減後出現錯誤值?
A:請確認運算對象皆為有效日期格式,避免混用文字與日期。
結語與行動呼籲
熟練掌握Excel日期公式,能大幅提升日常工作效率,無論是專案排程、考勤管理、財務分析都能得心應手。建議讀者可將上述公式應用於實際案例,並結合Monday.com、ClickUp等工具,打造更智慧的專案管理流程,讓日期管理不再是難題。