Excel中加号+和乘号*的用法,你不一定知道!
昨天我们学了excel中的几种数据类型,包括数字,文本,逻辑值和错误值。也知道逻辑值true可以转为1,false可以转为0。在最后还留了个思考题,不知道你有没有去做。肯定要用到数组,但是and和or函数最后不能返回一个数组,所以就要用到今天的加号+和乘号*。不要小看它们哦,可能会让你吃惊的!
-01-
*和+代替if函数
1.判断退休年龄
如果性别是男,退休年龄是60;性别是女,退休年龄是55。通常的做法是用if函数来完成,在C2单元格中输入公式=IF(B2="男",60,55),向下填充。现在也可以用*和+来完成,在D2单元格中输入公式=(B2="男")*5+55,向下填充。
你说这个公式是什么意思呢?你可以运算一下,B2单元格是"男",B2="男"就是true,(B2="男")*5就是5,(B2="男")*5+55就是60。
如果B2单元格是"女"呢?B2="男"就返回false,(B2="男")*5就是0,(B2="男")*5+55就是55。这样正好和if函数的结果是一样的,是不是挺妙的。
-02-
*和+代替and和or
1.员工提成计算问题
还是之前那个问题,人数小于4人且人均消费大于等于70元,可提成10元;或者人数大于等于4人且人均消费大于等于60元,可提成10元。之前用if,and和or来完成,今天就用*和+来完成。在E14单元格中输入公式=((D14<4)*(B14/D14>=70)+(D14>=4)*(B14/D14>=60))*10,向下填充。
这个公式又是什么意思呢?实际上在这里*是且的意思,相当于and;+是或的意思,相当于or。对比下图的2表,你可以看出,它们的条件是一样的,左表用and返回逻辑值,右表用*返回对应的数字;or和+是有一些差别的,当多个条件成立时,or返回true,+返回的值大于1。
明白了*和+的含义,上面的公式就好理解了。
-03-
*和+超越and和or
1.语文是优且数学是良,或者语文是良且数学是优的有几人?
昨天的思考题,用and和or不能返回数组,但用*和+就能解决这个问题。在E35单元格中输入公式=SUM((B35:B41="优")*(C35:C41="良")+(B35:B41="良")*(C35:C41="优")),按ctrl+shift+enter三键。
公式的含义就不详细说了,就是且和或的数组运算,只不过用*实现且的运算,用+实现或的运算。从这里可以看出,*和+不仅能代替and和or,更能超越它们,实现数组的运算。
当然不只有这一种方法,你还能想出其他的方法吗?
2.语文是100或数学是100的有几人?
首先来个错误示范,在E46单元格中输入公式=SUM((B45:B51=100)+(C45:C51=100)),按ctrl+shift+enter三键。按照上面说的这个公式应该没错呀,或的关系用+。那错在哪里呢?就在最后一个人的分数上,他的语文数学都是100,和100比较,都返回true,2个true相加就是2,原因就在这里。
那怎么解决呢?在E45单元格中输入公式=COUNT(0/((B45:B51=100)+(C45:C51=100))),按ctrl+shift+enter三键。(B45:B51=100)+(C45:C51=100)这部分会形成{1;0;1;0;0;0;2}这个数组。出错的原因就是最后那个2,实际它应该是1。所以用到前面的处理方法,用0除,将0转为错误值,将不为0的数字转为0,再用count统计数字的个数。
所以用+的时候要注意,如果在多个条件中有2个或2个以上的条件成立时,那么求出来的值会大于1,后续还要处理,比如最后一个人2科都等于100;如果多个条件中只有1个条件成立,或者1个条件都不成立时,那么可以放心地使用。
文件链接:
https://pan.baidu.com/s/1_Xa3uo7nWErYP7ZZjUaajA
提取码:qqdk