目錄
- 1. `TODAY()`
- 2. `DATE()`
- 3. `EOMONTH()`
- 4. `YEAR()`
- 5. `MONTH()`
- 6. `DAY()`
- 7. `WEEKDAY()`
- 8. `WEEKNUM()`
- 9. `DATEDIF()`
- 10.📌 函數擴展與應用
- 11. 📚 時間函數基礎概念與分類
Excel 提供了許多 日期與時間類型的函數,用于操作與處理日期或時間數據。這些函數對于數據分析、報表生成、項目管理等場景非常重要。
Excel 使用的日期是一個從 1900 年 1 月 1 日開始的序列號,例如:
2025-04-02
的序列號為44903
。- Excel 可以進行日期加減計算,例如:
=A1 + 7
會得到 7 天后的日期。
以下是主要函數的詳細介紹:
1. TODAY()
用途:返回當前日期,不包含時間部分。
- 格式:
=TODAY()
- 返回結果:系統當前日期(例如:2025-04-02)。
- 應用場景:自動生成報告日期、計算工作天數等。
示例:
A | B | 結果 |
---|---|---|
今日日期 | =TODAY() | 2025-04-02 |
比今天晚10天的日期 | =TODAY()+10 | 2025-04-12 |
2. DATE()
用途:返回由年、月、日三個參數構成的日期。
- 格式:
=DATE(year, month, day)
- 返回結果:一個合法的日期。
- 應用場景:將年、月、日組合成標準日期格式,或用于動態生成日期。
示例:
A | B | C | D | E |
---|---|---|---|---|
年 | 月 | 日 | 日期 | 結果 |
2025 | 4 | 2 | =DATE(A2,B2,C2) | 2025-04-02 |
3. EOMONTH()
用途:返回指定日期 前/后指定月數的月份的最后一天。
- 格式:
=EOMONTH(start_date, months)
- 參數說明:
start_date
:起始日期(選中的日期)。months
:正數表示未來的月份,負數表示過去的月份- -1:上個月
- 0:當月
- 1:下月
- 應用場景:計算月末日期、生成財務月報等。
示例:
A | B | 結果 |
---|---|---|
起始日期 | 2025-04-02 | |
上月月末 | =EOMONTH(A2, -1) | 2025-03-31 |
本月月末 | =EOMONTH(A2, 0) | 2025-04-30 |
下月月末 | =EOMONTH(A2, 1) | 2025-05-31 |
4. YEAR()
用途:從給定日期中提取年份。
- 格式:
=YEAR(date)
- 返回結果:整數年份。
- 應用場景:數據分類、年度匯總等。
示例:
A | B |
---|---|
日期 | 2025-04-02 |
年份 | =YEAR(A2) |
結果 | 2025 |
5. MONTH()
用途:從給定日期中提取月份(1-12)。
- 格式:
=MONTH(date)
- 返回結果:月份數字。
- 應用場景:月度分析、季度統計等。
示例:
A | B |
---|---|
日期 | 2025-04-02 |
月份 | =MONTH(A2) |
結果 | 4 |
6. DAY()
用途:從給定日期中提取日期中的“日”。
- 格式:
=DAY(date)
- 返回結果:日期中的日子(1-31)。
- 應用場景:按天分析、數據對比等。
示例:
A | B |
---|---|
日期 | 2025-04-02 |
日 | =DAY(A2) |
結果 | 2 |
7. WEEKDAY()
用途:返回一個日期對應的 星期幾,默認為 1=周日
到 7=周六
。
- 格式:
=WEEKDAY(date, [return_type])
- 參數說明:
date
:目標日期。return_type
:決定返回值的模式。1
:周日=1,周一=2,…,周六=7(默認)。2
:周一=1,周二=2,…,周日=7。3
:周一=0,周二=1,…,周日=6。
- 應用場景:周報表生成、工作日計算等。
示例:
A | B |
---|---|
日期 | 2025-04-02 |
星期幾 | =WEEKDAY(A2, 2) |
結果 | 3 (代表星期三) |
8. WEEKNUM()
用途:返回一個日期在一年中的第幾周。
- 格式:
=WEEKNUM(date, [return_type])
- 參數說明:
date
:目標日期。return_type
:決定每周的起始日。1
:周日為每周的第一天(默認)。2
:周一為每周的第一天。
- 應用場景:季度統計、年報分析等。
示例:
A | B |
---|---|
日期 | 2025-04-02 |
周數 | =WEEKNUM(A2, 2) |
結果 | 14 |
9. DATEDIF()
DATEDIF
用于計算兩個日期之間的差值,并返回不同單位(年、月、日)下的差值。雖然它是一個 “隱藏函數”(不會在函數列表中顯示),但在日期差值計算中非常強大。
函數語法
=DATEDIF(start_date, end_date, unit)
start_date
:起始日期(較早的日期)。end_date
:結束日期(較晚的日期)。unit
:返回結果的單位,用引號括起來。支持以下幾種單位:
單位 | 含義 | 說明 |
---|---|---|
"Y" | 年數 | 返回兩個日期之間的 完整年份數。 |
"M" | 月數 | 返回兩個日期之間的 完整月份數。 |
"D" | 天數 | 返回兩個日期之間的 天數總計。 |
"MD" | 忽略年與月,僅計算 天數差 | 如 2024-01-10 和 2025-03-20 返回 10 。 |
"YM" | 忽略年,僅計算 月份差 | 如 2024-01-10 和 2025-03-20 返回 2 。 |
"YD" | 忽略年,僅計算 天數差 | 如 2024-01-10 和 2025-03-20 返回 69 。 |
🚩 注意:
start_date
必須小于等于end_date
,否則會返回錯誤值!
示例用法
假設在 Excel 表中:
A | B | C |
---|---|---|
起始日期 | 2020-01-01 | |
結束日期 | 2025-04-02 |
公式與結果如下:
單位 | 公式 | 結果 |
---|---|---|
年數 | =DATEDIF(A2, B2, "Y") | 5 |
月數 | =DATEDIF(A2, B2, "M") | 63 |
天數 | =DATEDIF(A2, B2, "D") | 1918 |
忽略年,僅計算月數 | =DATEDIF(A2, B2, "YM") | 3 |
忽略年與月,僅計算天數 | =DATEDIF(A2, B2, "MD") | 1 |
忽略年,僅計算天數 | =DATEDIF(A2, B2, "YD") | 91 |
應用案例
🎯 工齡計算
如果要計算員工的工齡(單位為年),可以使用:
=DATEDIF(入職日期, TODAY(), "Y")
舉例:如果 入職日期 = 2018-03-01
,今天是 2025-04-02
,則工齡為 7
年。
🎯 年齡計算
假設在 A1
單元格中存儲生日:
=DATEDIF(A1, TODAY(), "Y")
輸出為:年齡(單位:年)。
🎯 項目周期計算
如果想計算項目持續了幾個月,可以使用:
=DATEDIF(項目開始日期, 項目結束日期, "M")
如果要算出項目的總天數:
=DATEDIF(項目開始日期, 項目結束日期, "D")
錯誤與注意事項
- 如果
start_date > end_date
,Excel 會返回#NUM!
錯誤。 DATEDIF()
是一個“隱藏函數”,在 Excel 的函數提示中找不到它。- 如果使用時出現錯誤,檢查日期格式或是否引用了無效的單元格。
10.📌 函數擴展與應用
-
獲取當前時間:
=NOW()
返回包含日期和時間的完整時間戳(例如:2025-04-02 14:35:12)。
-
自動生成每月最后一天列表:
=EOMONTH(start_date, 0)
可以用于生成財務報表中的月度截止日期。
這些函數在數據分析中非常有用,例如生成時間序列、計算年度/季度/月度數據的匯總與對比、動態生成報表等。
11. 📚 時間函數基礎概念與分類
Excel 中的時間函數可分為以下幾類:
- 日期獲取函數:
TODAY()
,NOW()
- 日期提取函數:
YEAR()
,MONTH()
,DAY()
,WEEKDAY()
- 日期計算函數:
DATE()
,DATEDIF()
,EOMONTH()
,WEEKNUM()
- 其他函數:
HOUR()
,MINUTE()
,SECOND()
,TIME()
,TIMEVALUE()