Excel:SUMIF由空白单元格设置的未定义范围

时间:2017-09-11 22:26:37

标签: excel excel-formula

我正在尝试对一系列具有不断变化范围的细胞进行求和。

A   0
    0
    5
    0
B   1
C   2
    4

因为“A”应该返回5,“B”1和“C”6。一些研究告诉我,OFFSET公式可能有效,但我没有运气。

3 个答案:

答案 0 :(得分:1)

这个怎么样: 在数据列之间插入一个列并粘贴公式:(假设Col A现在有A,B,C和Col C包含数字,并将其粘贴到Col B)中:

=IF(AND(A2="",A1<>""),B1,IF(AND(A2="",A1=""),B1,A2))

请添加标题行以避免第一列错误...

这将填充值,您的数据现在将如下所示:

ColA    ColB    ColC
A       A       0
        A       0
        A       5
        A       0
B       B       1
C       C       2
        C       4

现在你可以使用sumif或甚至数组输入这样的公式来总结值:

Col F =SUM(IF($B:$B=E2,$C:$C,0))中的公式(使用 CTRL + Shift + 输入而不是正常输入数组公式)

ColE    ColF
C       6
B       1
A       5

希望这有帮助。

答案 1 :(得分:0)

不填写Column A中的空白,这是实现目标的公式。假设您要填写公式(这是一个数组公式,请一起点击 Ctrl + Shift + 输入){{1} }:

cell C1

这样做是使用{=IF(A1="","",SUM(OFFSET($A1,0,1,MATCH(0,ISNUMBER(VALUE(A2:$A$7&B2:$B$7))*1,0))))} 来查找要聚合的范围。棘手的部分是OFFSET的{​​{1}}。为了找到它,我连接Height并检查是否使用OFFSETcolumn A and column B将其返回为值,以将ISNUMBER*1更改为0和1。找到下一个0并返回行号,以便我知道在哪里停止添加号码。希望这有帮助,但如果您有任何疑问请告诉我。

enter image description here

答案 2 :(得分:0)

Column C中尝试此公式并将其拖放,

=IF(A1<>"",SUM(INDIRECT("B" & ROW() & ":B" & IFERROR(MATCH("*",A2:A$10,0)+ROW()-ROW($1:$1),999))),"")

enter image description here

注意: - 这是not an array公式。