ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 函数与公式 > 用sumproduct来简化逻辑判断

用sumproduct来简化逻辑判断

作者:绿色风 分类: 时间:2022-08-18 浏览:97
楼主
LOGO
工作中经常会遇到先判断某单元格内容是否为空,若为空,则显示为"",否则执行下一步操作.如蒸版这一帖中加班工资列用的公式
  1. =IF(F5="","",F5*G5)
,用这个公式来判断也可达到想要的效果.但当其他单元格引用了此单元格的内容时,有可能会产生错误.如预领工资列
  1. =IF(AND(AND(E5=""),I5=""),"",E5+H5+J5+I5)
,若没有加班工资,则根据前面所设的公式,返回"",则此时预领工资将得不到正确结果,因为此时H5为"",E5+H5+J5+I5得不到由于有一为空文本,所以得不到正确的结果,
  用sumproduct的话则可以得到正确的结果,且简化公式.如加班工资一列可用
  1. =sumproduct(C5*D5)
,预领工资一列可用此公式
  1. =sumproduct(E5+H5+J5+I5)
,且=sumproduct(A*B)中,A或B为0,或两者为0都会返回0,效果与=if(A="",0,"A*B)一样.
   相乘可以用sumproduct来简化逻辑判断,相除则不可以.
2楼
liuguansky
sumproduct单元素的话,运行规则不能参照SUMPRODUCT的帮助说明,如果有文本出现会显示#VALUE
sumproduct(""*2)这样的。。
=sumproduct(C5*D5)
比如这样的公式,如果C5中出现""或者其他文本,就会返回#VALUE!
3楼
gouweicao78
不过,存在几个问题:
1、没有数组运算,不需SUMPRODUCT,而只需SUM
2、=sumproduct(E5+H5+J5+I5)——中的+号不仅是多余的,而且可能是导致错误的,比如其中某个单元格为"",那么就返回#VALUE!错误。
3、除法问题:=IF(OR(A1=0,B1=0),"",B1/A1),也可以用=IF(A1*B1,B1/A1,""),并非要SUMPRODUCT。
4、附件中的公式,仍然是蒸蒸版提问的,而没有使用新的公式来说明效果。

因此,整个问题的解决,并非SUMPRODUCT在简化逻辑判断,而是利用数据相乘*代替AND函数判断并列条件(即AND(A1<>0,B1<>0),或者AND(C5<>"",D5<>"")等)。
4楼
LOGO
学习了,谢谢各位高手,学到了不少,在数值的类型相对规范的前提下(如蒸版的帖子中工资表的数据应都为数值型,或用查找替换功能将"",替换为空规范数值类型),用*可以来代替一些逻辑判断,再结合设置为零值不显示,或者设置单元格格式为零值显示为-,可以满足工作的需要.用sum(a*b)也是可以的.
5楼
蒸蒸日上
报到,学习来了!没想到还有这么简单实用的公式!
6楼
lrlxxqxa
1楼整理得态度相当认真,2楼3楼分析的很透彻,这种氛围真好
7楼
gouweicao78
是的。整理得很认真,有着劲儿,很快就会提高水平的。
8楼
poiuyman5
VERY NICE!!!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap