我正在尝试执行以下操作:如果它在第3列中找到字母“A”,则将第2列的所有值(与“A”在同一行中)相加,但是,标题是单个范围。
我尝试过使用数组和其他类型的函数,但是我没有得到任何地方......
棘手的部分是总和必须在找到新标头时重新启动。 标题之间没有空隙。
谢谢大家!
PS。实际上,没有任何“块”没有“A”,就像你在第二个标题下面看到的那样。我已经过滤并删除了那些。
答案 0 :(得分:5)
您可以尝试在单元格D2中输入此内容并填写:
=IF(LEN(C3)<>1,SUMIF($C$2:C2,"A",$B$2:B2)-SUM($D$1:D1),"")
...但如果您有很多行,最好使用代码填充简单的SUMIF公式。一种方法是按Alt+F11
进入VB代码窗口,然后在此行的即时窗口中输入并输入:
[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)