在一定范围的列上使用SUMIF或SUMPRODUCT忽略文本项

时间:2019-05-03 09:45:48

标签: excel excel-formula

我有一个范围,其中包含各种文本和数字。我希望根据识别出的第一列进行总计。

我尝试过

=SUMIF(A1:A20,"John",B1:E20)

仅返回第一列编号。我也尝试过

=SUMPRODUCT((A1:A20="John")*(B1:E20))

但是由于C列中有文本,它返回#VALUE!。

A | B | C | D | E

约翰| 5 |葡萄酒| 2 | 7

Sean | 6 |啤酒| 5 | 2

当“ John”在A列中时,我希望将B-E列中的所有数值总计在一起

3 个答案:

答案 0 :(得分:3)

这是一个数组公式解决方案-使用Ctrl,Shift和Enter确认:

=SUM(IF(A1:A20="John",IF(ISNUMBER(B1:E20),B1:E20)))

如果您只想排除C列,则可以使用以下非数组公式:

=SUMPRODUCT((A1:A20="John")*(B1:B20))+SUMPRODUCT((A1:A20="John")*(D1:E20))

或者,也许将C移到不在数字中间。

答案 1 :(得分:0)

尝试以下公式:

T | undefined

并向下拖动以获取每一行的总和。

答案 2 :(得分:0)

另一种有趣的方法:

  • 选择整个矩阵并命名(例如“ TestRange”)

  • 使用OFFSET()对表中所有列的所有值求和

enter image description here

  • H2中使用的公式:

    {=SUM(OFFSET(TestRange,MATCH(H1,A1:A2,0)-1,0,1,COLUMNS(TestRange)))}
    

请注意,这是一个数组公式。