Google Sheets中INDIRECT函数跨多工作表失效(Excel中正常)
解决Google Sheets跨多工作表COUNTIFS统计问题
问题原因
Google Sheets的INDIRECT函数无法像Excel那样自动迭代处理工作表名称数组,原公式仅会解析数组中的第一个工作表名称,导致只统计首个工作表的数据。
解决方案
使用BYROW+LAMBDA遍历每个工作表名称,单独计算每个工作表的符合条件单元格数,最后用SUM汇总结果:
=SUM(BYROW('List of sheets '!A2:A8, LAMBDA(sheet, COUNTIFS(INDIRECT("'"&sheet&"'!A1:AZ1000"), "ATP001", INDIRECT("'"&sheet&"'!A1:AZ1000"), "P3", INDIRECT("'"&sheet&"'!A1:AZ1000"), "<>iNPC"))))
公式说明
BYROW('List of sheets '!A2:A8, LAMBDA(sheet, ...)):遍历工作表名称列表,将每个名称赋值给sheet变量COUNTIFS(INDIRECT(...), ...):针对当前sheet对应的区域,统计同时满足三个条件的单元格数量SUM(...):将所有工作表的统计结果相加,得到跨表总数量
额外优化(可选)
如果工作表列表存在空白行,可先用FILTER过滤非空值,避免报错:
=SUM(BYROW(FILTER('List of sheets '!A2:A8, 'List of sheets '!A2:A8<>""), LAMBDA(sheet, COUNTIFS(INDIRECT("'"&sheet&"'!A1:AZ1000"), "ATP001", INDIRECT("'"&sheet&"'!A1:AZ1000"), "P3", INDIRECT("'"&sheet&"'!A1:AZ1000"), "<>iNPC"))))
内容的提问来源于stack exchange,提问作者T_J_Neuro
相关产品推荐
相关产品推荐

