乘以逻辑而忽略空格

时间:2014-11-11 04:58:46

标签: 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(B1:B3*(LEN(A1:A3)=3))

这适用于这个简单的测试用例,但实际数据有空白(或者更具体地说,是由另一个公式设置为""的单元格)。互联网建议使用PRODUCT()来增加而忽略空格,但PRODUCT()也忽略了逻辑。我尝试将我的逻辑转换为整数,这很好用:

{=SUMPRODUCT(B1:B3,INT(LEN(A1:A3)=3))}

但是,在我的实际情况中,条件(INT的参数)是一个AND语句。在使用公式调试器查看此公式的评估时,看起来AND语句接收两个参数,这两个参数都是逻辑数组,但是将它们折叠为单个逻辑而不是逻辑数组。

...所以现在我被卡住了。有没有办法为条件和编写公式 - 条件返回参考单元格(因此我不能使用SUMIF) - 条件很复杂(需要AND,所以数组公式出来了) - 数据包含空格(需要PRODUCT而不是*)

1 个答案:

答案 0 :(得分:1)

只需要一个辅助列,您可以在其中计算A列中单元格内容的长度。然后您只需使用SUMIF即可。这是一种快速而通用的解决方案。

如果辅助列真的不是一个选项,那么你可以使用一个结合了SUM和IF的数组公式。

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

enter image description here

Cell B5包含=“”。

SUM和SUMIF都可以处理非数字内容。他们完全无视它。