欢迎光临散文网 会员登陆 & 注册

用了这个方法之后,我搞定了80%的Excel公式问题!

2023-07-13 18:10 作者:秋叶Excel  | 我要投稿

我是拉小登,一个爱梳头的 Excel 老师。


今天早上被一阵争吵声聒醒了。


打开学员群一看,是两个学员在激烈地争吵。



大致就是,学员 A 提了一个问题。


学员 B 帮忙解答,还写了很长的公式,还贴心地做好了文件回复到了群里,但是回答的并不是学员 A 提出的问题。


然后……感觉辛苦帮你答疑,你还不领情,感觉自作多情了。


我十分能理解 B 同学的心情,很多人提问的时候各种跪求,你帮忙解答完了,连声谢谢都没有,就走了。


倒不是为了那声谢谢,主要是这样伸手党多了,很多热心答疑的人,就很容易寒心,就不愿意答疑了,甚至最后退群(真的有)。


好了,言归正传,来看看具体的问题。


问题需求



问题其实并不复杂。


学员 A 是一个 HR,做一个考勤表,里面有每个月 1~31 号的日期,记录每天考勤状态。



但是有的月份没有 31 号,比如 4 月、2 月,日期会自动变成下月 1 号,那么问题来了。


如何根据大小月份,自动显示或隐藏 30/31 日期?或者下月 1 号日期?

解决方法



这个问题解决起来并不难,用一个 IF 函数就可以:



公式如下:


=IFERROR(IF(MONTH(AD3+1)=MONTH(AD3),AD3+1,""),"")


学习函数公式,要讲究套路,记住拉登老师的顺口溜:函数公式第 1 步,有啥要啥理思路。


这个公式的思路是这样的:


我们有啥?


我们有每月的 1 号日期,那么后面的日期,使用前一天的日期+1 就可以得到。


然后向右填充,可以得到每天的日期。



我们要啥?


我们想要的是,如果月份中没有 30/31 号,就隐藏日期。


想一下,当月如果没有 30/31 号话,那么对应的日期就会变成下个月的 1 号,那么思路就来了。



理思路!


在计算日期时,我们先判断,如果当前日期,和前一天不是同一个月,那么就反馈空白,否则日期就+1。


明白了原理公式就很容易理解了。



大致思路如下:

❶ 用 MONTH 函数,计算出今日的月份。

❷ 用 MONTH 函数,计算出昨天的月份,并和今天月份做比较。

❸ 如果今日月份和昨日月份相等,则返回日期+1,即今日日期。

❹ 如果不相等,则返回空白文本,隐藏日期。


需要注意的是,如果是 2 月份,那么 2/29 不存在,会返回空白文本。而空白文本+1 会产生错误,所以 2/30 和 2/31 都变成了错误值。




为了避免错误的发生,我们还需要在 IF 函数外边加上一个 IFERROR 函数,过滤掉错误值。


修改后的公式如下:

  • =IFERROR(IF(MONTH(AD3+1)=MONTH(AD3),AD3+1,""),"")

彩蛋时刻



根据日期自动判断大小月,这个效果用在日历里更加好看。


比如下面的表格中,设置不同的月份,日期会自动的调整日期、显示或隐藏 31 号;同时还可以根据星期自动的调整日期的位置。





如果你想学习更多神奇的 Excel 函数,那么千万别错过这次的《3 天 Excel 集训体验营


用 3 大学习模块,每天 1 小时,教你玩转 Excel!


《秋叶 Excel 3 天集训营》

想提升,趁现在!

助你不再被加班支配,不再为表格发愁!


现在报名

还免费赠送【35 个常用函数说明】!

赶紧扫码预约吧!👇👇👇


*广告

用了这个方法之后,我搞定了80%的Excel公式问题!的评论 (共 条)

分享到微博请遵守国家法律