转自EXCEL不加班
学员在求和的时候,结果为0,一直搞不清楚什么原因?
这种问题很常见,可以分成2大类。
1.循环引用
高版本循环引用的时候,都会在状态栏左下角提示。引用B列的区域,会将B6循环引用进去,导致出错。
不过有的版本没有提示,这时可以点公式→错误检查→循环引用,就可以看到循环引用的单元格。
遇到这种,都是直接更改引用区域就可以。
=SUM(B2:B5)
2.文本格式
有不少学员的表格都是从系统导出来,而系统的数据大多数是文本格式,这就导致求和为0。
选择区域,点左上角的感叹号,转换为数字,这样就可以求和。
到这里问题就解决了,突然想到另一个学员的求和问题。
同样是文本格式,但就是不想改变格式,这种又该如何解决?
这里就可以借助--,也就是减负运算,将文本格式转为数字格式。这时出现一个很奇怪的现象,支出金额合计是错误值,存入金额是正常的。
=SUMPRODUCT(--B2:B12)
卢子第一反应就是,存在隐藏字符或者空格,用LEN函数测试,发现都是0,没有存在任何字符,怎么回事呢?
卢子又猜想可能是存在"",这种太常见了,为了美观很多人都会用""。比如让错误值显示空白。
=IFERROR(原来公式,"")
而存在""是不允许运算,一运算就是错误值。
既然如此,那就用IF函数判断,让空白的显示0,有金额的转换格式。
=IF(B2="",0,--B2)
绕了一大圈,终于搞定了,输入公式后,按Ctrl+Shift+Enter结束。
=SUM(IF(B2:B12="",0,--B2:B12))
最后,这个学员又提出了一个需求,要根据交易时间进行条件求和。
其实,SUM+IF函数的数组公式,是可以条件求和的,单条件或者多条件都可以,记得输入公式后,按Ctrl+Shift+Enter结束。
=SUM(IF(B$2:B$12="",0,($A$2:$A$12=$E2)*B$2:B$12))
这样,问题就完美解决了。
表格电子怎么回事excel