学相伴,共同进步,大家好,这里是 EXCEL 自习室。
做行政、HR或考勤统计的小伙伴,一定遇到过这样的需求:手里有一份打卡明细表,B列是完整打卡时间(格式如2026-5-4 10:48:29),C列是打卡人员,需要按「日期」和「每个小时段」,清晰统计出不同时段的打卡次数,方便核对考勤、分析到岗高峰。今天就给大家分享2个超实用的方法。
前期准备:提取日期和小时段
我们的原始数据中,B列是完整的日期+时间,无法直接按小时统计,所以需要先把「日期」和「小时段」分开提取,操作超简单:
- 提取日期:在D3单元格输入公式
=INT(B3),按下回车后,下拉填充至所有数据行。这个公式能自动去掉时间部分,只保留纯日期(如2026-5-4),完美分离日期和时间。 - 提取小时段:在E3单元格输入公式
=HOUR(B3),按下回车后,下拉填充至所有数据行。这个公式会提取时间中的小时数(如10:48:29会提取出10),生成0-23的小时标识,对应一天24个时段。
提示:填充完成后,可以选中D列、E列,右键设置单元格格式,将D列设为「日期」格式,E列设为「常规」格式,让数据更整洁。
做好前期准备后,就可以开始统计啦!
方法一:数据透视表(推荐!快速高效,新手首选)
数据透视表是Excel统计的“神器”,无需输入复杂公式,拖拽鼠标就能完成统计,适合数据量较大、需要快速出结果的场景,尤其适合日常考勤汇总。
- 选中所有数据(包括表头,比如B2:E260,根据自己的实际数据范围调整),点击顶部菜单栏的「插入」,找到「数据透视表」,点击确认(默认新建工作表生成透视表即可)。
- 拖拽字段布局:在右侧「数据透视表字段」面板中,进行3步拖拽:
- 将「日期」(D列)拖动到「行」区域,用于横向区分不同日期;
- 将「小时段」(E列)拖动到「列」区域,用于纵向区分0-23时的各个时段;
- 将「打卡人员」(C列)拖动到「值」区域,Excel会自动默认「计数」,即统计每个日期、每个小时段的打卡次数。
- 优化显示(可选):如果想让结果更清晰,可以右键「值」区域的“计数项:打卡人员”,选择「值字段设置」,将名称改为“打卡次数”;还可以设置条件格式,让数值更直观。
优点:操作简单、速度快,数据更新后,右键点击透视表选择「刷新」,就能同步更新统计结果,适合经常需要更新考勤数据的场景。
方法二:公式统计(灵活可控,适合精准自定义)
如果需要自定义统计表格样式,或者想更灵活地调整显示效果,就可以用公式统计。核心用到COUNTIFS多条件计数函数,精准统计“指定日期+指定小时段”的打卡次数,适配各类自定义统计需求。
- 创建统计表格:先在工作表空白区域,创建一个统计表格——竖向(G列)输入0-23(代表一天24个小时段),横向(H列及以后)输入需要统计的日期(可从D列复制粘贴,避免输入错误),表格表头可设置为“小时段”“日期1”“日期2”等。
- 输入统计公式:在第一个统计单元格(如H3,对应“0时+第一个日期”)输入公式:
=IF(COUNTIFS($D$3:$D$260,H$2,$E$3:$E$260,$G3)=0,"无数据",COUNTIFS($D$3:$D$260,H$2,$E$3:$E$260,$G3)) - 公式解读(帮你理解,避免输错):
COUNTIFS($D$3:$D$260,H$2,$E$3:$E$260,$G3):多条件计数,意思是“统计D列(日期)等于H2(当前日期)、且E列(小时段)等于G3(当前小时)的打卡次数”;IF(...,0,"无数据",...):判断如果打卡次数为0,显示“无数据”,否则显示实际打卡次数,避免表格出现大量0值,更整洁。
- 批量填充:输入公式后按下回车,选中该单元格,横向、纵向下拉填充,即可快速统计出所有日期、所有小时段的打卡次数。
提示:公式中的$D$3:$D$260、$E$3:$E$260,要根据自己的实际数据范围调整(比如数据到300行,就改为$D$3:$D$300);$符号是绝对引用,避免填充时公式错位,一定要加上哦!
总结
两种方法各有优势,按需选择即可:
- 追求高效、数据量大 → 选「数据透视表」,拖拽操作,一键刷新;
- 需要自定义表格、精准控制显示 → 选「公式统计」,灵活适配各类需求。
其实Excel考勤统计并不难,掌握这两个方法,不管是日常打卡统计、高峰时段分析,还是月度考勤汇总,都能轻松搞定,再也不用熬夜手动计数啦!