excel日期怎么加减

时间:2025-12-05 13:57:41 文档下载 投诉 投稿

说起Excel的日期加减,这事儿可深可浅。很多人,真的,就停留在单元格里直接加个数字,以为那就是全部了。嘿,也不是不行,但这就好比你拿到了一台顶配的电脑,却只用它来玩扫雷,太浪费了。

首先,你必须,我是说必须,把一个观念刻进脑子里:Excel里的日期,本质上,是个“骗局”。

它披着“2023-10-26”这样的外衣,骨子里却是个冷冰冰的数字。Excel内心深处,根本不认识什么“年”、“月”、“日”。它只认一个东西:从1900年1月1日开始,到今天,一共过去了多少天。那个1900年1月1日,在Excel的世界里,就是数字 1。1900年1月2日,就是 2。以此类推,你今天打开Excel,输入一个函数=TODAY(),然后把这个单元格的格式从“日期”改成“常规”,你会看到一个五位数的整数。比如45000多。

这个数字,就是从那个遥远的起点到今天的总天数。

理解了这一点,你就捅破了第一层窗户纸。为什么日期可以直接加减一个整数?因为你就是在对那个底层的“天数”进行数学运算。

=A1+10 这不就是在A1单元格代表的那个总天数上,再往后数10天吗?结果自然就是10天后的日期。

=A2-A1 这不就是在计算两个日期背后的“总天数”之差吗?结果自然就是它们之间相隔了多少天。

这就是日期的直接加减,简单粗暴,解决燃眉之急,比如算个项目还有几天到期,或者计算两个事件之间间隔了多少天。绝对够用。

但你很快就会发现,世界不是这么简单运转的。你想加一个月呢?减两个月呢?

直接 +30?别闹了。月份有30天、31天,还有那个磨人的2月,28或29天。你要是敢直接加固定的天数,你的合同续签日期、员工转正日期、财务月结……迟早乱成一锅粥。

这时候,就该请出我们真正的英雄了——函数。

月份加减的王者:EDATE

这个函数,名字听起来有点怪,但信我,它简直是处理月份加减的救命稻草。它的作用只有一个,纯粹且强大:在指定的日期基础上,增加或减少指定的整数个月份。

它的语法简单到让人感动: =EDATE(开始日期, 月数)

举个栗子。 A1单元格是 2023-1-31。 你想知道3个月后是哪天? =EDATE(A1, 3) Excel会给你 2023-4-30。看到了吗?它智能地知道4月只有30天,自动给你调整到了月末。你再试试 2024-1-31 加上一个月,它会给你 2024-2-29,因为它知道2024是闰年!

你想知道半年前是哪天? =EDATE(A1, -6) 月数用负数就行。

EDATE这个函数,它就像一个忠诚的仆人,你告诉它开始日期、要跳跃的月数,无论是正数(未来)还是负数(过去),它都毫厘不差地给你精准定位到那个月的同一天。干脆利落。毫不拖泥带水。这才是专业人士的玩法。

月末日期的掌控者:EOMONTH

EDATE是亲兄弟,EOMONTH(End of Month)的功能更专一,也更霸道。它只干一件事:返回指定日期之前或之后某个月份的最后一天。

这在什么时候最有用?财务!算账期!各种截止日期! 比如,所有款项必须在下单日之后的第二个月的月底前付清。

A1是下单日期 2023-3-15。 公式就是: =EOMONTH(A1, 2) 结果是 2023-5-31。它不管你开始是15号还是1号,直接锁定目标月份,然后给你那个月的最后一天。

想算当月的最后一天? =EOMONTH(A1, 0) 月数写0,就是当月。

想算上个月的最后一天? =EOMONTH(A1, -1)

EDATEEOMONTH,这两个函数组合起来,几乎能解决你80%以上关于“月”的计算难题。

工作日的精算师:NETWORKDAYS.INTL

好了,现在难度升级。老板让你排个项目计划,说这个任务需要15个工作日完成,从今天开始,问你什么时候能搞定。

你敢直接 +15 吗?周末怎么办?法定节假日怎么办?

这时候,就轮到 工作日计算 的神器出场了。NETWORKDAYS是个老牌函数,但现在我更推荐它的升级版:NETWORKDAYS.INTL。后面的INTL是International(国际)的缩写,意味着它更灵活,能自定义周末。毕竟现在很多公司都是大小周或者单休,对吧?

它的语法有点复杂,但值得你花时间搞懂: =NETWORKDAYS.INTL(开始日期, 结束日期, [周末], [节假日])

这是用来计算两个日期之间的工作日天数的。

但我们现在要解决的是“未来日期”的问题,所以要用另一个函数,WORKDAY.INTL

=WORKDAY.INTL(开始日期, 天数, [周末], [节假日])

看清楚,一个是算“天数差”,一个是算“结束日期”。

场景来了: A1是开始日期 2023-10-26。 B1是需要的工作日 15 天。 假设我们还有个国庆节假日列表,在 H1:H3 区域。 我们的周末是常规的周六、周日。

公式可以这么写: =WORKDAY.INTL(A1, B1, 1, H1:H3)

这里的 1 是什么意思?它是NETWORKDAYS.INTLWORKDAY.INTL里的一个代码,代表“周六、周日是周末”。它还有很多选项,比如 11 代表只有周日是周末。你可以根据自己公司的作息,自定义周末

这个函数,会自动跳过你设定的所有周末,以及你在节假日列表里提供的所有日期,然后给你一个精确到天、实实在在的、老板问起来你绝对不会心虚的交付日期。

年龄计算的终极答案:DATEDIF

说到日期计算,怎么能不提算年龄?这绝对是个高频需求,也是个大坑。

最天真的算法:(TODAY()-出生日期)/365。 我拜托你,千万别这么干。闰年呢?你考虑了吗?这样算出来的,是个大概的小数,极不准确,而且非常不专业。

真正的王者,是一个隐藏函数:DATEDIF

为什么说它隐藏?你在Excel的函数列表里直接找,是找不到它的,也没有任何提示。但你只要输入 =DATEDIF(,它就能用。很神奇吧?据说是为了兼容早期版本留下来的。

语法: =DATEDIF(开始日期, 结束日期, "单位")

这个“单位”参数,是它的灵魂,有几种写法,每种都有奇效: * "Y":计算整年数。算周岁,用它就对了。 * "M":计算整月数。 * "D":计算总天数(效果和直接相减一样)。 * "YM":忽略年份,计算不足一年的整月数。比如算“2岁零8个月”里的那个“8”。 * "MD":忽略年月,计算不足一月的剩余天数。比如算“2岁8个月零15天”里的那个“15”。 * "YD":忽略年份,计算不足一年的总天数。

所以,计算年龄最完美的公式是什么? A1是出生日期 1990-5-20=DATEDIF(A1, TODAY(), "Y") 这会返回一个干干净净的整数,告诉你这个人到底几周岁了。

如果你想得到更详细的,比如“XX岁XX月XX天”这种,你可以把几个参数组合起来: =DATEDIF(A1,TODAY(),"Y") & "岁" & DATEDIF(A1,TODAY(),"YM") & "个月" & DATEDIF(A1,TODAY(),"MD") & "天"

这个公式一亮出来,办公室里的小白们看你的眼神都会不一样。

最后的几个忠告,或者说“坑”

  1. 警惕文本格式的日期:有时候你从系统里导出的数据,或者别人发给你的表格,里面的日期看起来没问题,但就是不能参与计算,一算就报错 #VALUE!。八成,它是文本。怎么判断?数字和真正的日期默认是右对齐的,而文本是左对齐的。解决办法很多,可以用DATEVALUE函数转换,或者用数据分列功能强行转一次。

  2. 日期的分解与重组:有时候你需要把一个日期拆开,单独用它的年、月、日。YEAR()MONTH()DAY() 这三个函数就是干这个的。反过来,如果你有三个单元格分别装着年、月、日,想把它们合并成一个真正的日期,请使用DATE(年, 月, 日)函数,不要傻傻地用 & 去连接,那会得到一个文本,而不是一个可以计算的日期。

掌握了这些,你才算真正摸到了Excel日期加减的门道。它不再是简单的 +1-1,而是一套组合拳,是一门关于在电子表格里掌控时间的艺术。从简单的天数计算,到精准的月度跳跃,再到剔除节假日的智能排期,最后到那个神秘的DATEDIF,每一步,都是你从Excel新手走向高手的印记。

【excel日期怎么加减】相关文章:

excel怎么设置阴影12-05

Excel怎么自动减法?12-05

excel怎么嵌入文件12-05

怎么注册excel帐号12-05

excel除法怎么输入12-05

excel怎么组合图形12-05

excel日期怎么加减12-05

怎么裁剪excel表格12-05

excel怎么取消合并12-05

别急。这事儿,咱得掰开揉碎了说。12-05

结语:效率提升,从掌握小技巧开始12-05

excel怎么设置升序12-05

excel函数怎么运行12-05