目录
- 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()