Google Sheets筛选可见行时按文本条件列求和的方法求助
Google Sheets 筛选后统计可见行的Valid/Invalid数值总和
方法1:使用AGGREGATE函数(兼容新旧版本)
AGGREGATE函数支持忽略筛选隐藏的行,结合IF条件筛选Valid/Invalid:
- 统计Visible行中Valid对应的S列总和:
=AGGREGATE(9, 5, IF($T$6:$T="Valid", $S$6:$S, ""))
- 统计Visible行中Invalid对应的S列总和:
=AGGREGATE(9, 5, IF($T$6:$T="Invalid", $S$6:$S, ""))
说明:旧版Google Sheets需要按
Ctrl+Shift+Enter作为数组公式输入,新版会自动识别数组计算。参数9代表求和,5代表忽略筛选隐藏的行。
方法2:使用SUBTOTAL+BYROW(新版Google Sheets)
通过SUBTOTAL判断行是否可见,结合BYROW遍历每行筛选条件后求和:
- 统计Visible行中Valid对应的S列总和:
=SUM(BYROW($A$6:$T, LAMBDA(row, IF(AND(INDEX(row,1,20)="Valid", SUBTOTAL(103, INDEX(row,1,1))), INDEX(row,1,19), 0))))
- 统计Visible行中Invalid对应的S列总和:
=SUM(BYROW($A$6:$T, LAMBDA(row, IF(AND(INDEX(row,1,20)="Invalid", SUBTOTAL(103, INDEX(row,1,1))), INDEX(row,1,19), 0))))
说明:
SUBTOTAL(103, 单元格)用于判断该行是否可见(可见返回1,隐藏返回0),INDEX分别取T列(第20列)的标识和S列(第19列)的数值,最后SUM汇总符合条件的数值。
为什么SUMIF不生效?
SUMIF函数会计算所有行的数据,包括筛选后隐藏的行,无法识别手动筛选的可见状态,因此需要用支持忽略隐藏行的AGGREGATE或带10开头参数的SUBTOTAL来实现需求。
内容的提问来源于stack exchange,提问作者Leon Oosthuysen
相关产品推荐
相关产品推荐

