Google Sheets中INDIRECT+COUNTIF仅识别首个工作表问题求助
Google Sheets跨工作表统计指定值出现次数的解决方案
问题原因
你之前用的=SUM(COUNTIF(INDIRECT("'" & I2:I43 & "'!A2"),C2))及ArrayFormula版本无效,是因为COUNTIF仅能处理单个单元格/范围引用,当INDIRECT返回多个工作表的引用数组时,它只会读取第一个引用,无法遍历所有工作表。
有效公式(无需脚本)
直接用SUMPRODUCT结合数组运算实现跨表统计:
=SUMPRODUCT(--(INDIRECT("'"&I2:I43&"'!A2")=C2))
公式解释
INDIRECT("'"&I2:I43&"'!A2"):根据I列的工作表名称列表,生成所有对应工作表中A2单元格的引用数组(INDIRECT(...) = C2):逐个对比每个工作表A2的值是否等于目标值C2,返回由TRUE/FALSE组成的布尔数组--:将布尔值转换为对应的1(TRUE)或0(FALSE)SUMPRODUCT:对所有转换后的数值求和,得到目标值在所有工作表A2中的总出现次数
补充优化(处理空工作表名称)
如果I列存在空单元格,公式会报错,可添加过滤排除空值:
=SUMPRODUCT(--(INDIRECT("'"&FILTER(I2:I43,I2:I43<>"")&"'!A2")=C2))
内容的提问来源于stack exchange,提问作者Erwin Biere
相关产品推荐
相关产品推荐

