Excel总和如果不是空字符串

时间:2016-01-29 13:09:23

标签: string excel null is-empty sumifs

我想将B列中与A列中非空的单元格相对应的所有单元格相加。但是,在Excel中,术语“非空”有点暧昧:如果单元格包含公式,但结果是空字符串,即= IF(1 = 0,1,“”),则认为它不为空,即使结果基本上没什么。

但是,我想排除这些细胞。

首先尝试的显而易见的事情是

=SUMIF(A:A,"<>",B:B)

但这不起作用,因为运营商&lt;&gt;只说一个单元格是空的,如果它正好是:空的。如果有一个公式,例如= IF(1 = 0,1,“”),它被认为是“非空”,如上所述。

在我的Google冒险中,我也了解到“=”与“&lt;&gt;”相反在上面的公式中,但据我所知,这对我没有帮助。

让我的问题更具挑战性的是,我希望在B列中包含与A列中的文本和数字条目相对应的单元格...

我可以想出各种“解决方法”的方法,但我实际上是在一个解决方案之后,我不需要在我的数据中添加另一列,以及我可以保留数据的位置。

谢谢!

2 个答案:

答案 0 :(得分:3)

COUNTIF(S) / SUMIF(S)的行为我同意对空字符串感到沮丧。

您可以尝试:

=SUM(SUMIF(A:A,{"?*",">=0"},B:B))

如果A栏中的数字严格为非负数,或者如果不是:

=SUM(SUMIF(A:A,{"?*",">=0","<0"},B:B))

或者你可以切换到SUMPRODUCT,它不会遭受如此模糊的空字符串处理:

=SUMPRODUCT(0+(A1:A15<>""),B1:B15)

虽然它的缺点是,与COUNTIF(S) / SUMIF(S)不同,你不能随意引用任意数量的单元而不损害性能(因此我选择了15行的上行引用) :实际上,在SUMPRODUCT中使用整个列引用是一个灾难性的想法。

此致

答案 1 :(得分:0)

我试图用CUBEVALUE公式做类似的事情,可以返回“”而不是0.

要使SUM和添加(+)工作,我使用了=VALUE("0" & CUBEVALUE(uglyforumlahere))而不是使用IF语句来检查CUBEVALUE(uglyforumlahere))是否评估为“”如果没有,则必须重复CUBEVALUE(uglyforumlahere))

我也在那里投了一个IFNA(),所以最终的结果是=VALUE("0" & IFNA(CUBEVALUE(uglyforumlahere),0))