算工龄、算账期、算合同到期日、算两个日期之间有多少个工作日、把时间差显示成小时数。Excel 的日期本质是数字,时间是小數;理解这一点,日期加减和格式显示就不会乱。
1900-01-01 当作 1,每过一天加 1;2026-10-31 的序列值大约是 46300 多,具体值取决于日期系统;12:00 是 0.5,06:00 是 0.25;46300.5 表示某天中午;| 函数 | 作用 | 示例 |
|---|---|---|
TODAY() |
今天的日期,不含时间 | =TODAY() |
NOW() |
当前日期和时间 | =NOW() |
DATE(y,m,d) |
构造日期 | =DATE(2026,10,31) |
YEAR/MONTH/DAY |
取年/月/日 | =YEAR(A2) |
EOMONTH(start, months) |
某月最后一天 | =EOMONTH(A2,0) |
EDATE(start, months) |
几个月后的同一天 | =EDATE(A2,3) |
DATEDIF(start,end,unit) |
两个日期的间隔 | =DATEDIF(A2,TODAY(),"Y") |
DAYS(end,start) |
两个日期相差天数 | =DAYS(B2,A2) |
WORKDAY(start,days,[holidays]) |
若干个工作日后的日期 | =WORKDAY(A2,10,$H$2:$H$10) |
NETWORKDAYS(start,end,[holidays]) |
两个日期之间的工作日数 | =NETWORKDAYS(A2,B2,$H$2:$H$10) |
WEEKDAY(date,[type]) |
星期几 | =WEEKDAY(A2,2) |
WEEKNUM(date,[type]) |
一年中的第几周 | =WEEKNUM(A2,2) |
WORKDAY.INTL 和 NETWORKDAYS.INTL 可以自定义周末(例如周五、周六休息),Excel 2010 及以上可用。
=DATEDIF(A2,TODAY(),"Y")
DATEDIF 的第三个参数:
| 单位 | 含义 |
|---|---|
"Y" |
整年数 |
"M" |
整月数 |
"D" |
天数 |
"YM" |
忽略年后的月数 |
"MD" |
忽略年、月后的天数 |
"YD" |
忽略年后的天数 |
DATEDIF 在部分 Excel 版本的函数列表里不显示,但公式仍可用;结束日期早于开始日期会返回 #NUM!。
三个月后的同一天
=EDATE(A2,3)
本月最后一天
=EOMONTH(A2,0)
下个月最后一天
=EOMONTH(A2,1)
上个月最后一天
=EOMONTH(A2,-1)
EDATE 遇到目标月份没有对应日期时会取月末:2026-01-31 加一个月得到 2026-02-28(或闰年 02-29)。
10 个工作日后的日期(排除节假日)
=WORKDAY(A2,10,$H$2:$H$10)
两个日期之间的工作日数(含首尾)
=NETWORKDAYS(A2,B2,$H$2:$H$10)
节假日列表要单独维护,不能把周末写进节假日区域;WORKDAY/NETWORKDAYS 默认周六、周日休息。
两个时间相减
=B2-A2
超过 24 小时的小时数
=(B2-A2)*24
显示成 [h]:mm
把单元格格式设为 [h]:mm
[h] 带方括号表示累计小时数,超过 24 小时不会归零;普通的 h:mm 只显示 0–23 的小时部分。
yyyy-mm-dd:2026-10-31;yyyy/m/d:2026/10/31;m月d日:10月31日;aaaa:中文版显示“星期六”,跨语言环境可能不同;yyyy-mm-dd hh:mm:日期加时间。自定义格式只改变显示,不改变底层值。用 TEXT(A2,"yyyy-mm-dd") 会把结果变成文本,不能再直接做日期计算。
YEAR、MONTH 会返回 #VALUE!;用“数据 → 分列”或 DATEVALUE 转换。TODAY()/NOW() 是易失函数:每次重算都会更新,适合日报,不适合做需要固定的历史快照;要固定日期时复制后“粘贴为值”。DATEDIF 顺序:开始日期在前、结束日期在后;反过来会 #NUM!。NETWORKDAYS 含首尾:起止日期都算在内;只想算间隔天数用 DAYS。$H$2:$H$10,否则向下填充时范围会移动。[h]:mm,不要用 h:mm。合上页面,先回答,再展开对照。
12:00 在 Excel 里等于 0.5?EOMONTH(A2,0) 和 EDATE(A2,1) 有什么区别?0:30 而不是 24:30?EOMONTH(A2,0) 返回 A2 所在月的最后一天;EDATE(A2,1) 返回下个月的同一天。h:mm 格式,只显示 0–23 的小时部分;应改成 [h]:mm。
小程序版
微信扫码,随时查命令