前面讲了YEAR、MONTH、DAY,能把一个日期拆成年、月、日三部分。
有拆就有装,DATE函数可以把年、月、日三个数字重新拼成一个标准的Excel日期。
语法:=DATE(年, 月, 日)
三个参数都是必填的。
年可以是1900到9999之间的数字;
月是1到12;
日是1到31。
Excel会帮你检查这个组合是不是合法的日期,比如DATE(2026, 2, 29)会自动变成2026年3月1日,因为2026年2月没有29号,Excel就往后顺延了。
这个“自动纠错”的特性要特别注意。有时候它是优点,有时候它是坑。比如你写DATE(2026, 13, 1),Excel不会报错,而是老老实实变成2027年1月1日。
月份超过12就自动进年到下一年。同样,日超过当月天数也会进位到下个月。反过来,月或者日如果是0或负数,Excel会往前倒。DATE(2026, 1, 0)返回2025年12月31日。这个逻辑在处理某些复杂日期计算时很有用,但如果你没意识到,可能会算错。
DATE最常见的用法,就是跟YEAR、MONTH、DAY配合。
比如你有一列订单日期,想统一改成每个月的第一天。假设日期在A2,公式写成=DATE(YEAR(A2), MONTH(A2), 1)。这就得到了该月的一号。
想做每个月的最后一天?可以用=DATE(YEAR(A2), MONTH(A2)+1, 0)。把日参数写成0,就得到了上个月的最后一天,也就是当月的最后一天。
另一个常用场景:根据三个分散的单元格(比如B2是年,C2是月,D2是日)组合成日期。用DATE直接拼起来,再做后续计算。比如员工入职信息里,年、月、日分三列存的,你要算工龄,就得先合成日期,再用DATEDIF或者直接减法。
DATE还能帮你生成一个动态的日期范围。比如你想做年度汇总报表,每年只要改一个年份单元格,其他公式自动更新。假设A1里放年份2026,那么全年第一天的公式是=DATE(A1,1,1),最后一天是=DATE(A1,12,31)。年度内的所有日期都可以用这两个基准推算出来。
还有一个小技巧:判断某一天是不是闰年的2月29日。可以用=DATE(2025,2,29),如果返回的是2025年2月29日,说明闰年;如果返回2025年3月1日,说明不是闰年。实际上你可以用=MONTH(DATE(2025,2,29))看是不是2,如果是2就是闰年,否则不是。
DATE函数还有一个隐藏技能:它可以直接参与加减运算。比如=DATE(2026,5,15)+30,结果是2026年6月14日。因为Excel里日期就是整数,所以加减天数很方便。你不需要手动算哪个月有几天,Excel自己会处理好。
需要注意的地方:DATE函数的年份参数如果写成两位数字,比如=DATE(26,5,15),Excel会按照1900年代理解,26代表1926年,而不是2026年。所以在写年份时,最好用四位数,避免歧义。
跟YEAR、MONTH、DAY一样,DATE也是那种“太平常了反而被低估”的函数。很多新手喜欢用字符串拼日期,比如=A2&"/"&B2&"/"&C2,拼出来的是文本,不是真正的日期,没法加减排序。正确做法是用DATE函数转成日期格式,后续想怎么算都行。
总结一下:DATE就是日期的“装配工”。你给它三个零件(年、月、日),它给你一个完整的、能参与计算的日期。配合YEAR、MONTH、DAY,拆装自如,处理任何日期计算都绕不开它。
夜雨聆风