如何在Google Sheets中用REGEXMATCH+COUNTIF统计整列考勤匹配次数?
Google表格缺席&迟到计数器实现方案
1. 生成唯一姓名列表
首先从缺席(C列)和迟到(D列)数据中提取所有不重复的姓名,在F2单元格输入以下公式:
=UNIQUE(FLATTEN(SPLIT(TEXTJOIN(", ", TRUE, C:C, D:D), ", ")))
公式逻辑:合并C、D列所有文本内容→按「逗号+空格」拆分姓名→展平成单列→提取唯一值,自动生成完整的统计名单。
2. 统计缺席次数
在G2单元格输入公式,然后下拉填充至所有姓名行:
=SUMPRODUCT(--REGEXMATCH(C:C, "\b"&F2&"\b"))
\b是单词边界匹配,确保只统计完整姓名,避免部分匹配的错误(比如不会把"SMITH"误匹配到"SMITH JOHN")--将REGEXMATCH返回的布尔值(TRUE/FALSE)转换为数字1/0- SUMPRODUCT对整列的匹配结果求和,得到该姓名的缺席总次数
3. 统计迟到次数
在H2单元格输入公式,同样下拉填充:
=SUMPRODUCT(--REGEXMATCH(D:D, "\b"&F2&"\b"))
逻辑和缺席统计一致,仅将目标列替换为迟到数据所在的D列。
进阶:一键生成完整统计表格
如果想避免手动下拉填充,可使用数组公式一次性生成所有结果。在F1:H1输入表头后,在F2单元格输入:
=LET( names, UNIQUE(FLATTEN(SPLIT(TEXTJOIN(", ", TRUE, C:C, D:D), ", "))), absent_counts, BYROW(names, LAMBDA(x, SUMPRODUCT(--REGEXMATCH(C:C, "\b"&x&"\b")))), late_counts, BYROW(names, LAMBDA(x, SUMPRODUCT(--REGEXMATCH(D:D, "\b"&x&"\b")))), HSTACK(names, absent_counts, late_counts) )
公式会自动生成姓名列、缺席次数列、迟到次数列,无需后续操作。
内容的提问来源于stack exchange,提问作者RAPHAELLE ABBY MONTAYRE
相关产品推荐
相关产品推荐

