我想将B列中与A列中非空的单元格相对应的所有单元格相加。但是,在Excel中,术语“非空”有点暧昧:如果单元格包含公式,但结果是空字符串,即= IF(1 = 0,1,“”),则认为它不为空,即使结果基本上没什么。
但是,我想排除这些细胞。
首先尝试的显而易见的事情是
=SUMIF(A:A,"<>",B:B)
但这不起作用,因为运营商&lt;&gt;只说一个单元格是空的,如果它正好是:空的。如果有一个公式,例如= IF(1 = 0,1,“”),它被认为是“非空”,如上所述。
在我的Google冒险中,我也了解到“=”与“&lt;&gt;”相反在上面的公式中,但据我所知,这对我没有帮助。
让我的问题更具挑战性的是,我希望在B列中包含与A列中的文本和数字条目相对应的单元格...
我可以想出各种“解决方法”的方法,但我实际上是在一个解决方案之后,我不需要在我的数据中添加另一列,以及我可以保留数据的位置。
谢谢!
答案 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))