WPS在人事管理中的应用,考勤表与工资表

发布日期:2026-06-06   浏览次数:3

每个月的前三天,是人事专员周姐最痛苦的时刻。她要在三天内统计全公司80多人的考勤数据,核算每个人的工资:基本工资+绩效奖金−缺勤扣款+加班费−社保−个税。80个人的数据,涉及两张表来回对照、十几个项目的加减乘除、以及老板随时可能追加的"临时调薪"和"特殊补贴"。

周姐的工作流程极度依赖手工——在考勤表上画圈圈标记缺勤和迟到,在计算器上敲数字算工资,然后把结果一个个填入工资表。由于所有操作靠人眼和人手,每个月的工资明细至少有三处会被财务退回来修改。她最怕听到的一句话是:"周姐,这个月我的工资好像算错了。"

事实上,WPS 表格足以把人事管理中90%的重复计算自动化。考勤表不再是"手工画圈"的纸表格,而是自动统计迟到次数、缺勤天数、加班工时的智能文档;工资表不再是"计算器+手填"的组合,而是一张联动考勤表、社保基数、个税规则的计算引擎。本文从零搭建这两张核心人事表格,让你掌握从数据录入到自动核算的完整技能。


一、考勤表:从手工画圈到自动统计

1.1 考勤表的结构设计

一张高效的电子考勤表应该具备以下结构:

基本信息区 | 考勤打卡区(1日~31日)   | 统计汇总区
员工编号 | 每日出勤状态     | 出勤天数
姓名  | √=正常 △=迟到 ○=缺勤 ⊗=请假 | 迟到次数
部门  | 加班时长(小时)     | 缺勤天数
   |        | 加班总时长

设计原则

  • 基本信息区固定在前3-4列,供工资表 VLOOKUP 引用。
  • 考勤打卡区横向展开(31列),每天一列,便于每日填入。
  • 统计汇总区放在打卡区右侧,实时汇总计算结果。

1.2 用数据验证制作考勤状态下拉菜单

为防止考勤记录填写五花八门,必须用下拉菜单标准化每日状态:

  1. 选中打卡区域(如 E2:AI81,即535列对应131日)。
  2. 「数据」→「有效性」→「允许」→「序列」。
  3. 「来源」输入:√,△,○,⊗,+(分别代表正常、迟到、缺勤、请假、加班。加班另外在相邻的加班时长列填数字)。
  4. 点击「确定」。
  5. 设置出错警告:「请选择考勤状态符号」。

此后任何人在打卡区只能从下拉菜单选符号,不能乱输。

1.3 核心统计公式

假设打卡区为 E2:AI2(1日到31日),统计汇总区从 AJ 列开始:

出勤天数(√ 和 △ 都算出勤):

=COUNTIF(E2:AI2, "√") + COUNTIF(E2:AI2, "△")

或用一个公式:

=SUM(COUNTIF(E2:AI2, {"√", "△"}))

迟到次数

=COUNTIF(E2:AI2, "△")

缺勤天数(不含请假):

=COUNTIF(E2:AI2, "○")

请假天数

=COUNTIF(E2:AI2, "⊗")

1.4 加班工时统计

加班需要记录的不是符号而是小时数。建议在打卡区下方或旁边单独设行记录每日加班时长,然后用 SUM 汇总。

假设加班时长在 E3:AI3,加班总时长:

=SUM(E3:AI3)

如果加班时长和考勤状态混在一起不方便,可以在统计汇总区单独设一列"加班总时长",公式同上。对于需要区分工作日加班和周末加班的场景,在打卡区上方增加一行日期对应的星期(用 =TEXT(DATE(年,月,日), "aaa") 返回"一""二""三"等),然后用 SUMIFS 分类统计。

公式中用 "△" 等符号时必须确保与实际填入的符号完全一致(全角/半角)。建议将所有符号统一录入某个参数单元格或在一个隐藏区域中定义符号对照表,避免符号版本不一致导致统计为0。


二、工资表:联动考勤的自动化核算

2.1 工资表的结构设计

一张规范的工资表应包含以下列区:

基本信息 | 应发项目    | 应扣项目  | 实发
员工编号 | 基本工资    | 缺勤扣款  | 实发工资
姓名  | 绩效奖金    | 社保个人  |
部门  | 加班费    | 公积金个人  |
   | 各类补贴    | 个税   |

2.2 从考勤表联动数据

这是从手工操作到自动化的关键一步——工资表不需要手动翻考勤数据,而是通过函数自动抓取。

缺勤扣款

假设考勤表在"考勤表"工作表中,员工编号在A列,缺勤天数统计在AK列:

=VLOOKUP(A2, 考勤表!A:AK, 37, FALSE) * 日工资

其中日工资 = 基本工资 / 当月应出勤天数(通常为21.75天或22天)。

加班费

=VLOOKUP(A2, 考勤表!A:AL, 38, FALSE) * 时薪 * 加班系数

加班系数:工作日1.5倍,休息日2倍,法定节假日3倍。

迟到扣款(如公司有此规定):

=VLOOKUP(A2, 考勤表!A:AJ, 36, FALSE) * 单次迟到罚款金额

2.3 核心工资计算函数

绩效奖金(假设评级在独立参数表中):

用 VLOOKUP 根据绩效评级返回对应奖金:

=VLOOKUP(VLOOKUP(A2, 员工信息表!A:C, 3, FALSE), 绩效等级表!A:B, 2, FALSE)

第一层 VLOOKUP 找到员工的绩效评级,第二层 VLOOKUP 将评级对应为奖金金额。

社保与公积金

社保和公积金基于缴费基数×比例。缴费基数通常为员工上年度月平均工资,设有上下限。社保比例全国大致统一(养老8%+医疗2%+失业0.5%,个人部分合计约10.5%),公积金比例为5%~12%由公司选择。

社保个人 = 缴费基数 × 10.5%
公积金个人 = 缴费基数 × 公积金比例

注意社保缴费基数有上限(通常为当地社平工资的300%)和下限(60%),建议在表中增加判断:如果基本工资超过上限,按上限计算;低于下限的按下限计算(不过多低于下限的情况较少见)。可用:

=MIN(MAX(基本工资, 下限), 上限) × 比例

个税计算(累计预扣法):

个人所得税采用累计预扣法,计算逻辑为:

应纳税所得额 = 累计收入 − 累计免征额(5000×月数) − 累计专项扣除 − 累计专项附加扣除
应纳税额 = 应纳税所得额 × 税率 − 速算扣除数 − 累计已预缴税额

这个计算在工作表中实现时,可以用 VLOOKUP 配合税率表,或使用 WPS 的公式直接嵌套计算。由于涉及多列累计数据,建议在工资表右侧增加辅助列分别记录累计收入和累计已预缴税额,如嫌公式嵌套层级太多,也可在外部先用简单工具试算后确认逻辑无误再在表格中引用。

2.4 实发工资汇总

实发工资 = 基本工资 + 绩效奖金 + 加班费 + 各类补贴 − 缺勤扣款 − 社保个人 − 公积金个人 − 个税

所有项目都通过公式自动计算后,实发工资一行 =SUM 即可。HR唯一需要手动操作的是:每月的考勤状态填写和绩效评级更新。其他的,全部交给公式。


三、配套功能表

3.1 员工信息总表

将所有员工的基础信息集中在一张总表中,作为考勤表和工资表的公共数据源。

内容用途
A员工编号唯一标识,所有表的关联键
B姓名显示用
C部门按部门汇总工资和考勤
D入职日期计算工龄、年假
E基本工资工资表核心字段
F社保缴费基数社保公积金计算
G公积金比例公积金个人部分计算

维护规则:员工信息的修改(如调薪、调岗)只在这张表中操作,考勤表和工资表通过 VLOOKUP 自动同步。这是数据管理的基本原则——一个数据只存一份。

3.2 参数表(变与不变的分离)

将那些会变化但不宜放在公式内部硬编码的数值,集中放在一张独立的参数表中:

参数说明
应出勤天数22每月可能不同
日工资计算基数21.75标准月计薪天数
工作日加班系数1.5
休息日加班系数2.0
法定假日加班系数3.0
个税起征点50002025年标准
社保个人比例10.5%养老8%+医疗2%+失业0.5%
公积金比例12%公司自定5%-12%

好处:下个月应出勤天数从22变成21,只需在参数表中改一个数字,所有引用该参数的公式自动更新。不用在80个员工的工资行里一个个改。


四、高级技巧与自动化

4.1 按部门汇总工资

用 SUMIFS 按部门汇总:

=SUMIFS(工资表!实发工资列, 工资表!部门列, "研发部")

在汇总表中列出各部门名称作为条件,拖拽公式即可生成各部门汇总——老板最想看到的数据。

4.2 工资条的批量生成

工资表核算完成后,需要给每个员工生成独立的小条。传统方法是复制粘贴标题行到每行数据上方,80人意味着80次复制粘贴。

高效方案:用排序法一键生成。

  1. 在工资表右侧增加一列辅助列,填入序号1, 2, 3……
  2. 在数据区域下方空白行,复制一行标题,辅助列填入1.1, 2.1, 3.1……
  3. 选择整个数据区域 →「数据」→「排序」→按辅助列升序排列。
  4. 排序后,每个员工的数据行上面自动出现了标题行。
  5. 删除辅助列,调整格式,工资条生成完成。

4.3 条件格式高亮异常数据

用条件格式自动标记异常,让HR在最终审核时一眼发现问题:

  • 实发工资低于最低工资标准:设置条件格式为 =实发工资单元格<当地最低工资,填充红色。
  • 加班时长异常(超过36小时/月,违反劳动法):=加班总时长>36,填充橙色。
  • 缺勤天数异常(超过5天):=缺勤天数>5,填充黄色。

4.4 用 IF 函数处理特殊场景

新员工首月按比例计算

=IF(入职日期 > 本月1日, 基本工资/应出勤天数*(实际出勤天数), 基本工资)

离职员工结算

=IF(离职日期 < 本月末, 基本工资/应出勤天数*(实际出勤天数), 基本工资)

全勤奖判断

=IF(AND(出勤天数=应出勤天数, 迟到次数=0, 请假天数=0), 全勤奖金额, 0)

4.5 打印设置

工资表打印需要注意「顶端标题行」设置,让每一页都有表头:

  1. 「页面布局」→「打印标题」。
  2. 「顶端标题行」选中表格的标题行(通常是第1行或前两行)。
  3. 缩放调整为"1页宽",确保所有列在一页内。
  4. 对于80行以上的工资表,打印前先确认分页位置不在某人的数据中间断开。

五、月度操作流程

将每月人事核算工作标准化为以下流程,月初一小时搞定全月:

26~月末:① 汇总考勤数据,填入打卡区
   ② 确认加班时长
   ③ 确认请假申请与考勤记录一致

次月1日:④ 更新参数表(应出勤天数、可能的基数调整)
   ⑤ 更新员工信息表的变动(新入职/离职/调薪)
   ⑥ 考勤表自动统计汇总,确认无异常值(条件格式辅助)

次月2日:⑦ 工资表自动联动考勤数据,逐项核算
   ⑧ 检查个税计算(对比上月的累计预扣数据)
   ⑨ 按部门汇总,交财务审核

次月3日:⑩ 财务审核通过后,生成工资条
   ⑪ 打印/分发给员工
   ⑫ 保存当月工资表并备份(命名为"2026年06月工资表.xlsx")

六、常见问题

Q1:员工考勤跨月怎么处理?

如果考勤周期是上月26日到本月25日,打卡区的1日到31日需要对应调整。建议在考勤表顶部增加一行显示实际日期,便于人工核对。公式中的引用范围和"当月应出勤天数"也要对应调整。如果跨月考勤频繁,建议直接在考勤表顶部标注考勤周期起止日期作为参考。

Q2:调薪发生在月中怎么分摊?

新工资从调薪生效日开始计算。在工资表中增加两列辅助计算:调薪前日工资×调薪前天数和调薪后日工资×调薪后天数,相加即为当月应发基本工资。这种方法需要员工信息表中额外维护调薪日期和新旧工资三个字段。

Q3:离职员工的工资怎么处理?

离职员工的应出勤天数按实际工作天数计算(自本月1日至离职日)。公式中用 IF 判断离职日期是否在本月内,是则按比例折算。社保公积金的计算也需特殊处理——部分地区要求离职当月社保仍由原单位缴纳,具体以当地政策为准。

Q4:工资表发出去前如何保护不被修改?

关键步骤:「审阅」→「保护工作表」→设置密码→只允许用户选择"未锁定的单元格"。将需要手动填写的区域(如考勤打卡区)解除锁定,其余公式单元格全部锁定。这样别人只能填写考勤符号,无法修改公式和核心数据。这是防止工资被篡改的最基本防呆设计。

Q5:考勤符号用中文还是符号更稳定?

推荐符号。COUNTIF 对符号 "√" 的识别比中文"出勤"更稳定(中文可能有全角半角空格干扰)。同时在考勤表旁边放一个图例说明每个符号的含义,让所有填表人都能看懂。


七、总结

WPS 表格在人事管理中的价值,不在于它提供了多少现成的HR模板,而在于它让你能够按照自己公司的实际规则,搭建量身定制的计算体系

三张核心表的关系:

员工信息总表(基础数据)
 ↓
考勤表(每月填写状态,公式自动统计)
 ↓
工资表(VLOOKUP联动考勤表+员工信息表,公式自动核算)
 ↓
工资条(排序法一键生成)

这个架构一旦搭建完成,你每个月的"人事核算时间"将从三天缩短到一小时。更重要的是,因为所有计算由公式完成,只要公式逻辑正确,就不会再出现"算错了"的情况——你省下的不只是时间,还有被追着改数据的疲惫和压力。

今天就开始搭建你的第一张自动化考勤表。选一个最小的部门,按本文的公式和结构做一遍。花两个小时,换来之后每一年的轻松。


本文相关标签

没有相关标签