0

快照

我正在尝试执行以下操作:如果它在第三列中找到一个字母“A”,则将第二列的所有值(与“A”在同一行)相加,但是,在标题之间是单个范围。

我试过使用数组和其他类型的函数,但我没有得到任何地方..

棘手的部分是总和必须在找到新标头时重新开始。标题之间没有间隙。

感谢大家!

PS。实际上,没有任何“块”没有“A”,就像您在第二个标题下方看到的那样。我已经过滤并删除了这些。

4

1 回答 1

5

您可以尝试在单元格 D2 中输入此内容并填写:

=IF(LEN(C3)<>1,SUMIF($C$2:C2,"A",$B$2:B2)-SUM($D$1:D1),"")

...但是如果您有很多行,最好使用代码填充简单的 SUMIF 公式。一种方法是按Alt+F11访问 VB 代码窗口,然后在立即窗口中输入这一行并按 Enter:

[E1:E13]=[IF(LEN(OFFSET(C1:C13,1,0))<>1,"=SUMIF(C"&LOOKUP(ROW(C1:C13),ROW(C1:C13)/(C1:C13="H3"))+1&":C"&ROW(C1:C13)&",""A"",B"&LOOKUP(ROW(C1:C13),ROW(C1:C13)/(C1:C13="H3"))+1&":B"&ROW(C1:C13)&")","")]

这将在显示的单元格中输入这三个公式,并将剩余的单元格留空。

E4  =SUMIF(C2:C4,"A",B2:B4)
E9  =SUMIF(C6:C9,"A",B6:B9)
E13 =SUMIF(C11:C13,"A",B11:B13)
于 2012-08-08T10:04:15.817 回答