Google Sheets中COUNTIFS多条件统计及筛选动态更新问题
在Google Sheets实现筛选动态更新的计数与求和
1. 统计指定文本的可见出现次数
原COUNTIFS会统计整个区域(包括筛选隐藏的行),用下面的公式只统计筛选后可见且符合条件的行:
=SUMPRODUCT(SUBTOTAL(103, OFFSET($I$7, ROW($I$7:$I$113)-ROW($I$7), 0, 1)), --($I$7:$I$113="John"))
- 细节说明:
SUBTOTAL(103, ...):103代表忽略隐藏行的COUNTA,OFFSET用来逐个判断每行是否可见,返回1(可见)或0(隐藏)--($I$7:$I$113="John"):把Name列等于"John"的行转为1,其余为0SUMPRODUCT:将两个数组相乘后求和,得到最终符合要求的行数
也可以用更直观的FILTER写法:
=COUNTA(FILTER($I$7:$I$113, $I$7:$I$113="John", SUBTOTAL(103, OFFSET($I$7, ROW($I$7:$I$113)-ROW($I$7), 0, 1))=1))
2. 汇总可见行的关联Quantity
用同样的逻辑,把计数改成求和,针对Quantity列(假设在K列,自行调整范围):
=SUMPRODUCT(SUBTOTAL(109, OFFSET($K$7, ROW($K$7:$K$113)-ROW($K$7), 0, 1)), --($I$7:$I$113="John"))
- 细节说明:
SUBTOTAL(109, ...):109代表忽略隐藏行的SUM,专门针对数值列求和- 其余逻辑和计数公式一致,只计算可见且Name为"John"的行的Quantity总和
FILTER版本的求和公式:
=SUM(FILTER($K$7:$K$113, $I$7:$I$113="John", SUBTOTAL(103, OFFSET($I$7, ROW($I$7:$I$113)-ROW($I$7), 0, 1))=1))
实用提示
- 把公式里的
"John"换成单元格引用(比如A1),就能通过修改单元格内容动态切换统计目标 - 务必根据你的实际表格调整列范围(
$I$7:$I$113、$K$7:$K$113)
内容的提问来源于stack exchange,提问作者EF425
相关产品推荐
相关产品推荐

