对列求和,直到相邻列中的条件匹配

gre*_*eth 1 worksheet-function microsoft-excel

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

Col1 | Col2
-----+-----
   A | 12
   A | 4
   B | 5
   A | 16
   A | 8
   B | 91
   C | 6
   A | 55
-----+-----
   C | ???
Run Code Online (Sandbox Code Playgroud)

我想要的是,如果我C在左下方的单元格中键入(一个文本值),在???标记的单元格中显示Col2高于最后一个值的总和C(即 12+4+5+16+8+91)。以同样的方式,如果我B在同一个单元格中输入,我希望得到 12+4+5+16+8 结果。

我试着用SUMIFSVLOOKUP没有运气。你是怎样做的?

Jer*_*rry 5

您可以尝试以下公式:

=SUM(B1:INDEX(B:B,MATCH(2,IF($A$10=A1:A8,1))-1))
Run Code Online (Sandbox Code Playgroud)

输入作为以与阵列式Ctrl+ Shift+ Enter

IF($A$10=A1:A8,1)返回一个1and数组false。如果范围等于 C,那么我们得到数组{false,false,false,false,false,false,1,false},并MATCH(2, {false,false,false,false,false,false,1,false})返回76当从数组中取出 1 时,它变为。

然后 index 返回单元格 B6,它被拾取SUM以制作 range B1:B6

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