真的,不是我夸张。很多人玩转了VLOOKUP,搞得定数据透视表,但一碰到日期和IF函数的组合拳,立马就晕头转向。为什么?因为日期在Excel里,它是个“伪装者”。你看到的“2023-10-26”,跟它实际存的东西,完全是两码事。
想彻底搞懂这个,你得先扒掉日期那层皮。在Excel的内核里,日期这玩意儿根本就不是你看到的“2023-10-26”,它是个序列号,一个冷冰冰的数字。一切的起点是1900年1月1日,Excel把它记为数字1。1900年1月2日就是2,以此类推。你现在随便找个单元格输入今天的日期,然后把单元格格式改成“常规”,看到的那个四万多的数字,就是从1900年1月1日到今天的天数。
理解了这一点,IF函数和日期的结合就豁然开朗了。因为IF函数的核心不就是做个逻辑判断嘛,IF(逻辑判断, 判断为真时的结果, 判断为假时的结果)。既然日期本质是数字,那不就可以比大小了吗?
这才是关键。一切判断的基础。
最基础的玩法:直接比较大小
想象一下,你手上有一张项目清单,密密麻麻,每行都有个“预计完成日期”。老板让你每天上班第一件事,就是把所有已逾期的项目标红。
这活儿手动干?得累死。用IF函数,一分钟的事。假设预计完成日期在A列,我们要在B列判断状态。公式就可以这么写:
=IF(A2<TODAY(), "已逾期", "进行中")
拆解一下这个公式:
* TODAY():这可是个神仙函数,它会永远返回“今天”的日期。而且是动态的,你明天打开文件,它就自动变成明天的日期。
* A2<TODAY():这就是核心的逻辑判断。拿A2单元格的日期(那个序列号)和今天的日期(今天的序列号)比大小。如果A2的序列号比今天的小,说明日期已经过去了,那不就是逾期了嘛!
* "已逾期", "进行中":这就是判断结果的两个出口。条件成立,显示“已逾期”;不成立,就显示“进行中”。
是不是一下就感觉没那么玄乎了?同样的道理,你可以判断“是否未来7天内到期”、“是否今天到期”等等。
* 判断是否今天到期:=IF(A2=TODAY(), "今天到期!", "")
* 判断是否未来7天内到期:=IF(AND(A2>=TODAY(), A2<=TODAY()+7), "即将到期", "")
注意上面这个,我用上了AND函数。当你的判断条件不止一个时(比如,日期要大于等于今天,并且小于等于7天后),就需要AND或者OR这样的函数来帮忙了。AND要求所有条件都满足才行,OR是满足一个就行。
进阶骚操作:跟日期函数家族联姻
光会比较大小,只能解决60%的问题。真正让人头疼的,是更复杂的日期逻辑。比如,“判断某个日期是不是第三季度”、“判断合同是否在指定年份签订”、“计算项目超期了多少个工作日”。
这时候,就得请出Excel日期函数家族的其他成员了,让它们和IF函数打个配合。
1. YEAR(), MONTH(), DAY():日期的拆解工
这三个函数特别好理解,就是把一个完整的日期拆成“年”、“月”、“日”这三个独立的数字。
比如说,公司规定,所有6月份之前签的合同都要重新审核。合同日期在A列。
公式就可以是:=IF(MONTH(A2)<6, "需要重审", "正常")
MONTH(A2)会直接从A2的日期里提取出月份的数字,然后我们再用这个数字去跟6比较,简单粗暴。
再比如,要给所有2022年的订单打上“历史订单”的标签:
=IF(YEAR(A2)=2022, "历史订单", "当年订单")
2. DATE():日期的建造师
DATE函数跟上面那仨正好相反,它是用来“组装”日期的。DATE(年, 月, 日)就能生成一个标准的Excel日期。
你可能会问,我直接在公式里写“2023-1-1”不行吗?有时候行,但极不推荐!因为不同电脑的日期格式设置可能不一样,直接写文本容易出错。用DATE(2023, 1, 1)生成一个日期,才是最稳妥、最标准的方式。
举个例子,我们要判断一个员工的入职日期(A2)是否在2023年元旦之后。
标准写法:=IF(A2>DATE(2023,1,1), "23年新员工", "老员工")
这种写法,无论你的表格发给谁,都不会因为日期格式问题而出错。
3. WEEKDAY():周末的守护神
这个函数简直是项目管理、排班、算薪资的利器。WEEKDAY(日期, [返回类型])可以告诉你一个日期具体是星期几。
它的第二个参数“返回类型”很重要。我个人最常用的是2,它会把周一返回为1,周二为2,...,周日为7。这样就非常符合我们的习惯。
场景:如果一个任务的截止日期(A2)正好是周六或周日,就自动提醒“注意周末,可能顺延”。
公式:=IF(WEEKDAY(A2, 2)>5, "注意周末,可能顺延", "")
WEEKDAY(A2, 2)>5 这个判断太精髓了。因为周六和周日返回的是6和7,都大于5。一个简单的>5就把两种周末情况全包括了,漂亮!
那些年我们踩过的坑
最后,必须得说说那些绕不过去的坑,新手最容易在这里翻车。
-
文本格式的“假日期”:这是最最最常见的问题。有时候你从系统里导出的数据,或者同事发来的表格,里面的日期看着没问题,但它就是个文本,不是Excel认可的日期格式。你的IF函数怎么判断都是错的。 怎么分辨?很简单,真正的日期在单元格里默认是右对齐的,而文本是左对齐的。看到左对齐的日期,心里就要拉响警报了。解决方法通常是用“数据”选项卡里的“分列”功能,或者用
DATEVALUE函数强行转换一下。 -
公式结果显示一串数字:这个也常见。你辛辛苦苦写完IF公式,结果单元格里显示的不是“已逾期”,也不是日期,而是“45218”这样一串数字。别慌,这不是你公式错了。这只是因为单元格的格式是“常规”,它把日期的序列号给你显示出来了。你只需要选中那个单元格,右键设置单元格格式,把它改成“日期”或者“文本”就好了。
说到底,在Excel里跟日期打交道,就像是跟一个有点脾气的怪才合作。你得先摸清它的脾性(它认的是序列号),然后用它能听懂的语言(各种日期函数)去跟它沟通。而IF函数,就是你手里那个最好用的翻译器和指挥棒,把复杂的逻辑转换成清晰的指令。
一旦你跨过了那道坎,你会发现,所有关于时间的判断、筛选、提醒,都不过是几行公式的事。那种把一堆乱七八糟的时间数据,瞬间整理得井井有条的快感,真的很上头。
【聊到Excel的IF函数怎么用日期,我脑子里就冒出三个字:老大难。】相关文章:
excel2023的底纹怎么设置12-05
那个瞬间,世界是静止的。12-05
excel怎么取消隐藏单元格12-05
excel怎么合并单元格居中12-05
excel复选框怎么做12-05
excel怎么横向打印出来12-05
聊到Excel的IF函数怎么用日期,我脑子里就冒出三个字:老大难。12-05
文档怎么转换成excel表格12-05
怎么在excel绘制表格线12-05
excel2007 怎么设置行高12-05
excel表格里的公式怎么用12-05
别的不说,就问你一件事。12-05
excel怎么做下拉框12-05