Excel 仅当列包含值时才使用小计

Excel 仅当列包含值时才使用小计,excel,Excel,我目前正在使用以下小计小计(9,b:b)对过滤后的数据进行汇总 A列包含16、17、18或19的年份 如果A列包含16,我只想计算小计 =if(a:a=16,SUBTOTAL(9,b:b)或类似的东西我们可以“伪造”SUBTOTAL()函数。假设我们有如下数据: 我们要过滤数据,只在B列中添加对应于A列中16的值。在C2中输入: =SUBTOTAL(3,$B2:$B2) 然后向下复制。然后过滤列B,仅用于正值: 列C的酷之处在于,如果行可见,则为1;如果行隐藏,则为0。因此: =SUMPR

我目前正在使用以下小计
小计(9,b:b)
对过滤后的数据进行汇总

A列包含16、17、18或19的年份

如果A列包含16,我只想计算小计

=if(a:a=16,SUBTOTAL(9,b:b)
或类似的东西

我们可以“伪造”SUBTOTAL()函数。假设我们有如下数据:

我们要过滤数据,只在B列中添加对应于A列中16的值。在C2中输入:

=SUBTOTAL(3,$B2:$B2)
然后向下复制。然后过滤列B,仅用于正值:

C的酷之处在于,如果行可见,则为1;如果行隐藏,则为0。因此:

=SUMPRODUCT((B2:B20)*(C2:C20))
将产生与
=小计(9,b:b)
相同的结果,并且:

=SUMPRODUCT((A2:A20=16)*(B2:B20)*(C2:C20))
将应用列A限制


如果列A等于16?或包含16?您是否尝试过
SUMIFS()
?@Marc-SUMIFS不会忽略已筛选的行。OP-请参阅。A列为16。因此,它基本上是对A列进行分组,只对16的行进行小计,而忽略17、18或18的行。我想得到每年的小计,你可以看到,所以对16的行进行小计…对17的行进行小计,这样我就可以看到了如果统计数据逐年变化
=SUMPRODUCT(小计(3,偏移量(A1,行(A1:A1000)-1,1,1))*(A1:A1000=16)*(B1:B1000))
以上公式中的一个注释,您需要确保在为列B提供的范围内没有文本。因此,如果您的数据有标题,请以行2而不是行1开始所有引用。非常感谢