首页 > 解决方案 > 仅在列包含值时使用 SUBTOTAL

问题描述

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

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

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

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

标签: excel

解决方案


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

在此处输入图像描述

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

=SUBTOTAL(3,$B2:$B2)

并向下复制。然后仅过滤B列的正数:

在此处输入图像描述

C列最酷的地方在于,如果行可见,则为1 ,如果行隐藏,则为0 。所以:

=SUMPRODUCT((B2:B20)*(C2:C20))

将产生与 and 相同的结果=subtotal(9,b:b)

=SUMPRODUCT((A2:A20=16)*(B2:B20)*(C2:C20))

将应用A列限制。

在此处输入图像描述


推荐阅读