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