Google Sheets假期追踪表:按人员与缺勤代码自动统计天数
Google Sheets 跨多月份统计缺勤天数的简便方案
不用叠加12个重复公式,以下几种方法可以高效实现跨全年12个月份的统计需求:
方法1:用ARRAYFORMULA+COUNTIFS合并多范围
把每个月份的对应列堆叠成一个大数组,一次性完成多范围匹配统计,不用逐个月份写公式。假设你的每个月份表中,人员列是A列、缺勤代码列是C列,统计区域中$B2是当前行的人员姓名,D$1是当前列的缺勤代码,公式如下:
=SUM(ARRAYFORMULA(COUNTIFS({Jan!$A:$A; Feb!$A:$A; Mar!$A:$A; Apr!$A:$A; May!$A:$A; Jun!$A:$A; Jul!$A:$A; Aug!$A:$A; Sep!$A:$A; Oct!$A:$A; Nov!$A:$A; Dec!$A:$A}, $B2, {Jan!$C:$C; Feb!$C:$C; Mar!$C:$C; Apr!$C:$C; May!$C:$C; Jun!$C:$C; Jul!$C:$C; Aug!$C:$C; Sep!$C:$C; Oct!$C:$C; Nov!$C:$C; Dec!$C:$C}, D$1)))
- 用分号
;把同列数据垂直堆叠成大数组,COUNTIFS会对整个数组进行匹配 SUM用来把各月份的统计结果加总,得到全年总数
方法2:用QUERY函数统一筛选统计
如果所有月份表的列结构完全一致,QUERY可以合并多表数据后直接完成筛选统计,公式示例:
=QUERY({Jan!A:C; Feb!A:C; Mar!A:C; Apr!A:C; May!A:C; Jun!A:C; Jul!A:C; Aug!A:C; Sep!A:C; Oct!A:C; Nov!A:C; Dec!A:C}, "SELECT COUNT(Col3) WHERE Col1 = '"&$B2&"' AND Col3 = '"&D$1&"' LABEL COUNT(Col3) ''", 0)
{Jan!A:C; ... Dec!A:C}合并12个月的A到C列数据- QUERY语句中,
Col1对应人员列、Col3对应缺勤代码列,根据实际列位置调整 - 若缺勤代码是数字,去掉公式里的单引号
'即可
方法3:先建汇总表再统计
如果允许新增工作表,先建一个「汇总表」,用公式把全年数据整合到一起:
=ARRAYFORMULA({Jan!A:C; Feb!A:C; Mar!A:C; Apr!A:C; May!A:C; Jun!A:C; Jul!A:C; Aug!A:C; Sep!A:C; Oct!A:C; Nov!A:C; Dec!A:C})
之后统计区域直接用普通COUNTIFS引用汇总表,公式更简洁,后续维护也更方便:
=COUNTIFS(汇总!A:A, $B2, 汇总!C:C, D$1)
内容的提问来源于stack exchange,提问作者trustmacaroni
相关产品推荐
相关产品推荐

