打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
07多层嵌套IF函数如何简化?
这公式该如何简化?=IF(OR(AND(B2=“男”,C2>=60),AND(B2="女",C2>=55)),"退休","")

前两天在初阶函数生存训练营里出了一道多条件判断练习题▼

如上图所示的数据表,A列是人名,B列是性别,C列是年龄。

假设男性60岁退休,女性55岁退休,现在需要在D列编写公式,判断相关人员是否已退休。

有的朋友编写函数公式如下:

=IF(OR(AND(B2="男",C2>=60),AND(B2="女",C2>=55)),"退休","")

AND(B2="男",C2>=60),判断男性是否应该退休,返回一个逻辑值TRUE或者FALSE。

AND(B2="女",C2>=55),判断女性是否应该退休,同样返回一个逻辑值TRUE或者FALSE。

然后使用OR函数将两个逻辑值串联;任意一个条件为真,则IF函数判断条件成立,返回文本值退休,否则返回假空。

公式的逻辑似乎是非常清晰的,但是长度看起来又有点儿复杂——如何简化呢?

……

首先从规则可以得知,大于等于60岁,不论男女,都应该退休了,所以判断性别是否为男,就是多余的,因此我们可以将公式简化如下:

=IF(C2>=60,"退休",IF(AND(C2>=55,B2="女"),"退休",""))

然后换个角度想一下,计算规则也可以表达为,如果性别为男,则年龄>=60岁退休,否则年龄>=50岁退休,因此我们可以将公式再简化如下:

=IF(C2>=IF(B2="男",60,55),"退休","")

IF(B2="男",60,55),根据性别,返回一个退休年龄,如果是男,返回60,否则返回55;然后用实际年龄和该退休年龄作比较,即可判断是否已退休。

……

还没完,它还可以更短。

IF(B2="男",60,55),这个IF函数计算结果是一个数值。在逻辑判断中,逻辑值和数值是可以相互转换的。如果你经常写函数,就会敏感的意识到这家伙还可以简化,比如:

=IF(C2>(B2="男")*5+54,"退休","")

如果B2性别为男,则B2="男"返回结果TRUE,也就是1,否则返回0。然后该值乘以5,再加54……也就是说,如果B2是男性,则返回结果59,否则返回54;然后判断C2的值是否大于该值,即可得知是否到了退休年龄。

你以为这就完了?

当然不!

广告之后马上回来...▼

再给大家分享几种其它解法,解法来源社群里的几位大佬,比如来自嘉庆城的萧大官人,来自北京城的随风大少,来自人普高层的二肥书记,来自国企摸鱼的阿怪姐姐,以及来自民间核能研究院的Hyuk老哥……等等吧,都是有闲有钱的人呀。


❶ TEXT函数解:

=TEXT(C2-(B2="男")*5-55,"退休;")

LEFT函数解:

=LEFT("退休",(C2>(B2="男")*5+54)*2)

SUM函数也来凑热闹

=IF(SUM((C2&B2=ROW($55:$150)+(B2="男")*5&{"男","女"})*1),"退休","")

❹ VLOOKUP也不能闲着:

=VLOOKUP(C2-(B2="男")*5,{0,"";55,"退休"},2)

 LOOKUP一把推开VLOOKUP:

=LOOKUP(C2-(B2="男")*5,{0,"";55,"退休"})

 COUNTIFS表示硬来的话它也行啊:

=IF(OR(COUNTIFS(C2,">"&{54,59},B2,{"女","男"})),"退休","")

❼  SUMIFS表示既然COUNTIFS行,那它也必须行~

=IF(OR(SUMIFS(C2,C2,">"&{54,59},B2,{"女","男"})),"退休","")

……

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
EXCEL2010常用函数应用技巧宝典__(上册)共39页Word打印版
Count系列函数-Count、Counta、Countblank、Countif、Countifs...
Excel中加号+和乘号*的用法,你不一定知道!
让你从菜鸟成为玩转Excel的高手
Excel函数公式:20个常用公式和示例,人力和行政办公效率必备!
财务人事文员统计必会的逻辑函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服