Google Sheets中用QUERY替代COUNTIFS简化多表计数公式
简化多工作表COUNTIFS统计的方法
针对你需要统计指定Date(G列)对应animal_type(F列)数量的需求,以下几种方法可以简化现有公式,方便后续添加新工作表:
方法1:使用QUERY合并多表后统计
将所有Data开头的工作表的F、G列数据合并,再通过QUERY筛选统计,公式更简洁,后续加表只需追加表引用:
=QUERY({Data1!F:G;Data2!F:G;Data3!F:G;Data4!F:G}, "select count(Col1) where Col1 = '"&$A2&"' and Col2 = date '"&TEXT(B$1,"yyyy-mm-dd")&"' label count(Col1) ''", 0)
- 逻辑:用
{}合并多个工作表的目标列,QUERY语句筛选animal_type(Col1)等于$A2、Date(Col2)等于B$1的记录,返回统计数量。 - 后续新增工作表时,只需在大括号内追加
;DataN!F:G(N为新表序号)即可。
方法2:用SUMPRODUCT+INDIRECT实现动态批量引用
如果工作表命名严格遵循Data1、Data2...的规律,可通过动态生成表引用实现自动遍历所有表,无需手动逐个添加:
=SUMPRODUCT(COUNTIFS(INDIRECT("Data"&ROW(INDIRECT("1:4"))&"!$F$2:$F$373"),$A2,INDIRECT("Data"&ROW(INDIRECT("1:4"))&"!$G$2:$G$373"),B$1))
- 逻辑:
ROW(INDIRECT("1:4"))生成1到4的序列,配合INDIRECT动态引用Data1到Data4的目标区域,再用SUMPRODUCT汇总所有COUNTIFS的结果。 - 后续新增工作表时,只需把公式中的
1:4改成1:N(N为最新的工作表序号)即可。
注意事项
- 确保所有工作表的F列(animal_type)、G列(Date)格式统一,尤其是日期格式要一致,避免QUERY筛选出错。
- 若工作表命名无规律,方法1更稳妥;若命名有固定规律,方法2更适合长期维护。
内容的提问来源于stack exchange,提问作者Stevie
相关产品推荐
相关产品推荐

