Excel函数中的"负负得正":两个实用的文本转换技巧
Excel函数中的"负负得正":两个实用的文本转换技巧
在Excel函数中,"负负得正"不仅是一个数学概念,更是一种巧妙的文本转换技巧。本文将通过两个具体案例,详细讲解如何利用这一原理解决Excel函数中的文本转换和条件求和问题。
"负负得正"是数学中的乘法运算法则,意思是两个负数相乘结果是正数,例如:-2*(-3)=6。
在EXCEL中的函数写法中,也经常碰到类似"负负得正"的问题,比如文本类函数处理数字时就经常用到,如下图所示:
请注意观察上图:我在D3单元格用函数:=RIGHT(C3,3),然后把函数下拉到D5,之后在D6用SUM函数进行求和,但是结果是0!很奇怪吧?因为RIGHT函数是文本函数,返回的结果自然是文本,而文本是不能进行求和运算的,哪怕这个文本"看起来"是数字也不行。
那么我们要想继续求和该怎么办呢?解决方案很简单,就是把D3到D5都转化成数字即可,请看下图:
请继续观察上图,我做出修改的地方是:在RIGHT(C3,3)的前面加上了"",即:两个负号!然后把函数下拉,这时D3到D5的和就被我们求出来了。这里的""意思就"负负",那么它的结果自然就是"得正"了,整个函数的意思是:把RIGHT(C3,3)返回的结果强制进行数学运算(先求负值,再把负值继续求负值),这时候EXCEL就会帮我们把原来的文本转化成数字了。当然这里的""也可以用"1*"代替,意思类似,即把原来的文本用1去强制的做乘法。
接下来我们看另外一个"变异型"的"负负得正"问题,请看下图:
请观察上面两个图片:我先在F2单元格做了下拉菜单,然后在G2单元格输入如下函数:=SUMIFS(C:C,B:B,IF(F2="江浙沪合计","<>''",F2)),这时候当我在F2选择"江浙沪合计"时,就能把浙江、江苏、上海三地的销售额进行求和了!
上述函数应该好理解,数据小哥哥往期文章都有过介绍了, **这里需要解释的是这部分: <>''。这几个字符组合在一起的意思是:不等于空字符串;**于是整个函数的意思是:如果F2等于"江浙沪合计",就把B列中不为空字符串的单元格所对应的销售额进行求和。
接下来解释这里为什么是"变异型"的"负负得正"问题,大家都知道SUMIFS函数的意思是:对满足条件的单元格进行求和。也就是说条件区域(B列)要能满足具体的条件(F2),而我们的B列是没有"江浙沪合计"这个字段的,那么直接使用SUMIFS函数就不可以了,于是我在里面嵌入了IF函数,即先判断F2单元格是不是"江浙沪合计",如果是,就把B列中不为空字符的区域先锁定,即B2到B5。
那么如何获取到B2到B5这个区域呢?就是<>''在起作用了,'的意思是空字符串(类似给B列求负), <
的意思是不等于,那么二者结合起来就是<>''(类似给B列求负负),即:不等于空字符串,那么在B列不等于空字符串的就只有B2到B5了(类似负负得正了),于是我们想要求和的结果就被求出来了。
上述的解释还有点类似命题中的"逆否命题",即如果原命题为真,那么这个命题的逆否命题也为真。在这个案例里我们无法直接得到真命题(B2到B5),那么就先找出这个命题的逆否命题(先找出B列的空字符,然后不等于这个空字符即可)。
拓展学习:在SUMIFS函数中使用<>’’的用法可以应用在各类数据模型中,尤其需要动态展示不同区域数据时,请大家自行学习,可随时找数据小哥哥交流。