对列求和,直到相邻列符合条件为止

对列求和,直到相邻列符合条件为止

我有一张如下所示的表格:

Col1 | Col2
-----+-----
   A | 12
   A | 4
   B | 5
   A | 16
   A | 8
   B | 91
   C | 6
   A | 55
-----+-----
   C | ???

我想要的是,如果我C在左下角的单元格中输入(一个文本值),则在标记的单元格中显示最后一个值上方的???值的总和(即 12+4+5+16+8+91)。同样,如果我在同一个单元格中输入,我希望得到 12+4+5+16+8 作为结果。Col2CB

我尝试过SUMIFS,但VLOOKUP没有成功。您是如何做到的?

答案1

您可以尝试以下公式:

=SUM(B1:INDEX(B:B,MATCH(2,IF($A$10=A1:A8,1))-1))

Ctrl使用++作为数组公式输入ShiftEnter

IF($A$10=A1:A8,1)1返回一个包含和的数组false。如果范围等于 C,则我们得到数组{false,false,false,false,false,false,1,false},并MATCH(2, {false,false,false,false,false,false,1,false})返回,当从中减去 1 时,7它将变成。6

然后 index 返回单元格 B6,由 选取该单元SUM格以构成范围B1:B6

如果C将 改为A,我们得到:{1,1,false,1,1,false,false,1}MATCH返回8并且SUM变成B1:B7

答案2

使用带有文本的单元格引用略有不同。您必须用 括住引用,&Excel 才能使用它。

输入以下公式B9并读取单元格A9作为要排除的值。如您所见,您可以直接使用它=SUMIFS(B1:B8,A1:A8,"<>C")来获取所需的值,但它不会读取单元格中的值A9。下面使用文本。

=SUMIFS(B1:B8,A1:A8,"<>"&A9&"")

在此处输入图片描述

相关内容