Excel 在忽略空格的情况下乘以逻辑

Excel 在忽略空格的情况下乘以逻辑,excel,excel-formula,Excel,Excel Formula,我有一个基于参考单元格长度的求和标准。例如,如果数据为: A | B 1| 1.1 | 1 | 2| 1.2 | 0.5 | 3| 1.21| 3 | 如果A列(文本列)中的对应单元格有一个小数点(即长度3),则我希望对B列的值求和。例如:LEN(A1)=3为真,LEN(A2)=3为真,但LEN(A3)=3为假,因此总和应为1.5 因为似乎不可能像下面这样做 =SUMIF(A1:A3,"LEN(A1:A3)=3",B1:B3) 我开始用数组公式来实现这一点: {=SUM(

我有一个基于参考单元格长度的求和标准。例如,如果数据为:

     A | B 
1| 1.1 | 1   |
2| 1.2 | 0.5 |
3| 1.21| 3   |
如果A列(文本列)中的对应单元格有一个小数点(即长度3),则我希望对B列的值求和。例如:LEN(A1)=3为真,LEN(A2)=3为真,但LEN(A3)=3为假,因此总和应为1.5

因为似乎不可能像下面这样做

=SUMIF(A1:A3,"LEN(A1:A3)=3",B1:B3)
我开始用数组公式来实现这一点:

{=SUM(B1:B3*(LEN(A1:A3)=3))
这对于这个简单的测试用例很好,但实际数据有空格(或者更具体地说,是通过另一个公式设置为“”的单元格)。互联网建议使用PRODUCT()进行乘法,同时忽略空格,但PRODUCT()也忽略逻辑。我尝试将逻辑转换为整数,效果很好:

{=SUMPRODUCT(B1:B3,INT(LEN(A1:A3)=3))}
然而,在我的真实案例中,条件(INT参数)是AND语句。在使用公式调试器查看此公式的计算时,AND语句似乎接收两个参数,这两个参数都是逻辑数组,但将它们折叠为单个逻辑参数,而不是逻辑数组

…所以现在我被卡住了。有没有办法写出一个条件和的公式 -条件引用回引用单元格(因此我不能使用SUMIF) -条件很复杂(需要和,因此数组公式不可用)
-数据包含空格(需要PRODUCT而不是*)

只需要一个helper列,用于计算A列中单元格内容的长度。然后可以简单地使用SUMIF。这是一个快速且通用的解决方案

如果辅助列实际上不是一个选项,那么您可以使用一个结合了SUM和If的数组公式

{=SUM(IF((LEN($A$1:$A$10000)=3),$B$1:$B$10000))}

单元格B5包含“”


SUM和SUMIF都可以处理非数字内容。他们只是忽略它。

您的
SUMPRODUCT
公式对于您的示例很好,不需要是数组公式。你提到了你的“真实案例”,这需要一个和陈述。你能举个例子吗?表示和使用数组的传统方法是将条件数组相乘,正如你所指出的,并将数组折叠成单个值(这在许多上下文中都是有意义的)。使用额外的列-这就是电子表格如此强大的原因。它将简化您试图制作的公式,并减少错误。完成后把它们藏起来。@maybeweculldstealavan-很好。我能让这个公式这样工作。最后,我将事情拆分为更简单的部分,但您的评论确实回答了所问的特定问题。在实际案例中,帮助器列稍微复杂一些,但这仍然是正确的方法。它将求和公式简化为一个简单的求和公式。一开始就应该想到这一点。。。