考勤追踪表:如何统计单元格区域内单个字符的多次出现次数
统计考勤区域内单个字符的总出现次数(含单元格内多次出现)
针对你需要统计单个考勤字母(如A、T、S、L)在整个区域内的总出现次数(包括单个单元格内多次输入的情况),可以用以下公式解决:
核心公式(Excel/Google Sheets通用)
假设你的考勤数据区域是B2:M31(可根据实际范围调整),要统计字母"A"的总次数,公式如下:
=SUMPRODUCT(LEN(B2:M31)-LEN(SUBSTITUTE(B2:M31,"A","")))
公式原理拆解
SUBSTITUTE(B2:M31,"A",""):将区域内所有单元格中的"A"替换为空字符串,相当于移除所有目标字符LEN(B2:M31)-LEN(SUBSTITUTE(...)):计算每个单元格中目标字符的数量(原单元格长度减去移除目标字符后的长度)SUMPRODUCT:自动遍历区域内所有单元格,将每个单元格的字符数量相加,得到总次数
扩展用法
- 统计其他考勤类型:只需把公式中的"A"替换为对应字母即可,比如统计迟到调班申请"T":
=SUMPRODUCT(LEN(B2:M31)-LEN(SUBSTITUTE(B2:M31,"T",""))) - 区分大小写场景:如果你的考勤字母存在大小写混合(如既有"A"又有"a"),可以先用
UPPER统一转换为大写再统计:=SUMPRODUCT(LEN(B2:M31)-LEN(SUBSTITUTE(UPPER(B2:M31),"A",""))) - Google Sheets 替代写法:也可以用
ARRAYFORMULA配合SUM实现相同效果:=ARRAYFORMULA(SUM(LEN(B2:M31)-LEN(SUBSTITUTE(B2:M31,"A",""))))
你之前用LEN遇到瓶颈,是因为单独LEN只能计算单个单元格的长度,无法自动遍历整个区域并汇总结果,而SUMPRODUCT或ARRAYFORMULA+SUM刚好解决了这个问题——它们会批量处理区域内的每个单元格,再把结果累加。
内容的提问来源于stack exchange,提问作者user25565215
相关产品推荐
相关产品推荐

