电梯能运行吗?——简单的问题引发的Excel公式探讨
excelperfect
当今社会,电梯已经成了建筑物的必备之物。通常,当进入电梯的人员重量之和超过设定的重量时,电梯会报警并且停止运行。
这篇文章的素材来源于chandoo.org,让你使用Excel公式判断电梯能否运行。示例数据如下图1所示。
图1
电梯能否运行的判断条件是:
如果电梯里面的人数大于20人,或者人员总重量超过1400kg,那么电梯会停止运行。
图1中给出了10行数据,你能使用10个不同的公式进行判断吗?
是的,这个问题很简单,也很容易想出解决方案的公式,但要使用10个不同的公式,还是需要动点脑筋。
我们先从最常规的开始。
通常,我们会先判断第一个条件是否满足,如果满足,则再判断第二个条件是否满足,然后输出结果。在单元格B3中输入公式:
=IF(COUNT($C3:$X3)<=$AA$4,IF(SUM($C3:$X3)<=$AA$5,'能','不能'),'不能')
由于要求两个条件都满足,才能判断电梯能运行,因此可以使用AND函数来取两个判断条件的值。在单元格B4中输入公式:
=IF(AND(COUNT($C4:$X4)<=$AA$4,SUM($C4:$X4)<=$AA$5),'能','不能')
也可以反过来判断,此时需使用OR函数。在单元格B5中输入公式:
=IF(OR(COUNT($C5:$X5)>$AA$4,SUM($C5:$X5)>$AA$5),'不能','能')
根据条件,要满足不超过20人,则记录的数据最多到列V,不能到列W,因此列W中单元格的数据应为空。在单元格B6中输入公式:
=IF($W6=0,IF(SUM($C6:$V6)<=$AA$5,'能','不能'),'不能')
如果使用OR函数的话,那么在单元格B7中输入公式:
=IF(OR($W7>0,SUM($C7:$V7)>$AA$5),'不能','能')
结合NOT函数和与条件(*号),可以在单元格B8中输入公式:
=IF(NOT($W8)*(SUM($C8:$X8)<=$AA$5),'能','不能')
双减号转换逻辑值,以及与条件(*号),可以在单元格B9中输入公式:
=IF((--(COUNT($C9:$X9)<=$AA$4))*(--(SUM($C9:$X9)<=$AA$5)),'能','不能')
如果使用COUNTIFS函数来计数,结合AND函数来综合条件判断,那么可以在单元格B10中输入公式:
=IF(AND(COUNTIFS($C10:$X10,'>0')<=$AA$4,SUM($C10:$X10)<=$AA$5)*1=1,'能','不能')
还可以使用OFFSET函数获取求和单元格区域,在单元格B11中输入公式:
=IF((SUM(OFFSET($C11,,,1,COUNTA($C11:$X11)))<=$AA$5)*COUNTA($C11:$X11)<=$AA$4,'是','不是')
SUMIF函数也能派上用场,在单元格B12中输入公式:
=IF(AND(COUNTIF($C12:$X12,'>0')<=$AA$4,SUMIF($C12:$X12,'<='&$AA$5)),'是','不是')
你还能想出其他公式吗?
别太认真,就把这当作一场游戏,在解决问题过程中熟悉Excel函数,提升编写公式水平。
不想逐个输入数据或公式的朋友,可以到知识星球完美Excel社群上下载本文配套示例工作簿。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。