做HR,很难完全绕开Excel。
员工花名册要整理,月底考勤要统计,绩效结果要汇总,合同到期要筛,领导临时问一句“这个部门现在多少人”,又得重新拉一遍数据。
很多工作本身并不复杂,真正费时间的是:
查数据、匹配数据、统计数据,再反复核对。
所以HR没必要学一大堆复杂函数。
真正把下面这10类常用函数搞明白,日常80%的表格基本都能应付。
以下解读中所用到的HRM人事管理系统——简道云已经做成了完整的模板,可直接下载使用:https://www.jiandaoyun.com

一、查员工信息:VLOOKUP
HR最常见的一类工作,就是“拿一个字段,去另一张表里找信息”。
比如手里有一张考勤明细:

但里面没有姓名、部门、岗位,而另一张员工花名册里有这些信息。
这时候最常用的就是VLOOKUP。
比如根据工号查姓名:
=VLOOKUP(A2,员工表!A:D,2,0)
意思很简单:
拿A2里的工号,去员工表第一列找,找到以后返回第2列的姓名。
类似地,也可以继续带出部门、岗位。
如果Excel版本支持XLOOKUP,用起来会更灵活:
=XLOOKUP(A2,员工表!A:A,员工表!B:B,"未找到")
这种函数HR一定要会,因为实际工作里经常出现:
考勤一张表、绩效一张表、工资一张表、员工信息又是一张表。
问题也恰恰出在这里。
员工调了一次部门,HR可能要改三四张Excel。
哪张漏改了,月底数据马上就对不上。
所以我一直觉得,Excel适合临时处理和分析,但员工基础信息最好只维护一套。
在简道云HRM里,可以先统一维护员工档案。
姓名、工号、部门、岗位、入职日期这些基础信息放在统一的人事数据里,后续再围绕考勤、绩效、薪酬等业务继续管理。
这样HR平时用Excel做临时分析没问题,但不需要长期维护七八份员工主数据。

二、统计人数:COUNTIF
HR第二个天天用的动作,就是数。
- 这个部门多少人?
- 本月多少人迟到?
- 绩效A档多少人?
- 有多少员工还在试用期?
最基础的就是COUNTIF。
比如统计“生产部”有多少人:
=COUNTIF(C:C,"生产部")
如果要统计两个以上的条件,就用COUNTIFS。
比如:
统计生产部里“在职”的员工人数:
=COUNTIFS(C:C,"生产部",D:D,"在职")
再比如统计:
迟到次数超过3次,同时属于销售部的人数。
这种场景在月报里非常常见。
很多HR做人员分析时,第一步其实就是:
先把数据按条件分组。
但人数少的时候,筛选一下就够了。
人数到了几百、上千以后,每次领导想看一个新口径,HR就重新筛一次、做一次透视表,很快就会陷入重复劳动。
这也是为什么人事数据不能只停留在花名册层面。
系统里把员工档案和基础组织信息维护清楚以后,可以继续通过人才结构、人事相关看板去看不同维度的数据。
HR真正需要花时间的,应该是:
为什么这个部门人员增长这么快?为什么这个岗位流动这么大?
而不是每天重新算到底有多少个人。

三、算金额和时长:SUMIF
COUNTIF负责数“有多少条”。
SUMIF负责算“这些条一共多少”。
比如:
- 某部门本月加班一共多少小时?
- 某类补贴一共发了多少钱?
- 某个员工年度奖金累计多少?
都可以用SUMIF或者SUMIFS。
比如统计销售部的奖金总额:
=SUMIF(B:B,"销售部",E:E)
如果还要加一个条件:
销售部里,只统计“已确认”的奖金:
=SUMIFS(E:E,B:B,"销售部",F:F,"已确认")
这个函数在考勤、薪酬里特别常见。
但HR最容易踩的坑,不是公式写错。
而是数据源根本不在一起。
加班时长在考勤Excel,绩效结果在另一张表,奖金标准又在第三张表。
月底发工资前,HR开始复制、粘贴、匹配、汇总。
做一次还行,每个月都这么做,迟早会出错。
如果企业已经有一定规模,我更建议把考勤、绩效、薪酬这些业务尽量放到统一的人事管理体系里。
系统先把源头记录留下,HR月底主要做核对和异常检查。
Excel继续用,但更多是拿来做临时分析。
不要让Excel变成所有人事业务的数据库。

四、判断异常:IF
IF函数特别适合HR做规则判断。
比如:
迟到超过3次,标记“异常”。
否则标记“正常”。
公式可以写成:
=IF(C2>3,"异常","正常")
再比如:
绩效分数低于70分,标记“重点沟通”。
合同距离到期不足30天,标记“即将到期”。
试用期结束日期小于今天,标记“待转正确认”。
HR日常很多表格其实都在做这种事:
根据一个条件,自动给结果。
IF会用以后,很多原本需要HR逐行看的数据,就可以先筛一遍。
但有一点要注意,Excel里的IF只能帮你标出来。
比如它告诉你:
这个员工合同还有20天到期。
但标出来以后,谁跟进?
什么时候处理?
有没有处理完?
Excel本身不一定能解决。
所以这类有明确后续动作的事情,更适合放回HR日常流程里管理。
系统负责留下状态和记录,HR重点看真正需要处理的异常。
五、多条件判断:AND和OR
现实里很多人事规则,不可能只看一个条件。
比如员工是不是需要重点关注,可能同时看:
- 迟到次数。
- 缺卡次数。
- 请假情况。
又比如一个员工是否进入转正名单,可能要看:
- 试用期是否到期。
- 审批是否完成。
- 绩效结果是否达到要求。
这时候IF就可以和AND、OR一起用。
比如:
迟到大于3次,并且缺卡大于2次,标记异常:
=IF(AND(B2>3,C2>2),"异常","正常")
AND代表:
几个条件必须同时满足。
OR代表:
只要其中一个满足就行。
比如合同到期或者试用期到期,都需要HR关注:
=IF(OR(B2<=30,C2<=7),"待处理","正常")
这类组合函数对HR特别实用,因为很多规则本身就是多条件判断。
但规则一多,也很容易出现另一种情况:
Excel公式越套越长。
打开一格:
IF套IF,再套AND,再套VLOOKUP。
过了三个月,连做表的人自己都看不懂。
所以复杂的人事规则做到一定程度以后,就不要再追求:
“我还能不能再加一个函数解决。”
而应该考虑:
是不是应该把规则放到对应的人事业务流程里去管理。

六、算司龄:DATEDIF
HR经常要算员工在公司待了多久。
比如:
- 算司龄。
- 判断年假档位。
- 统计老员工比例。
- 做人才结构分析。
DATEDIF就很好用。
比如员工入职日期在B2:
=DATEDIF(B2,TODAY(),"Y")
就可以算出完整司龄年数。
如果想算月数,也可以换成:
"M"
这类函数看起来很简单,但实际特别容易出问题。
因为HR经常有好几张花名册。
- 一张招聘用。
- 一张工资用。
- 一张组织架构用。
结果同一个员工的入职日期,三张表里还不一样。
函数算得再准,源数据错了也没用。
所以人事管理里有一个很重要的原则:
基础字段尽量只维护一次。
在HRM里把入职日期、部门、岗位等员工档案信息维护清楚,后续需要统计员工司龄、人员结构时,再基于统一数据去做。
真正应该减少的,不是公式。
而是重复录数据。

七、处理日期:TODAY等
人事工作里,日期几乎无处不在。
- 入职日期。
- 转正日期。
- 合同到期日期。
- 绩效周期。
- 考勤月份。
- 离职日期。
所以YEAR、MONTH、TODAY这些基础日期函数一定会频繁用到。
比如判断合同还有多少天到期:
=B2-TODAY()
统计员工入职年份:
=YEAR(B2)
统计入职月份:
=MONTH(B2)
最常见的使用场景,是筛出:
本月入职、本月转正、合同快到期的人。
很多HR过去会专门维护一张“待办表”。
月初重新筛一次数据,月底再检查有没有漏。
人少的时候没问题,但人数一多,这种事情非常依赖HR个人记忆。
更成熟一点的做法,是把员工生命周期相关数据持续维护在系统里。
HR平时直接从人事工作台、员工档案或相关业务里去看和处理。
Excel更多作为补充工具,而不是靠一张表记住全公司什么时候该干什么。

八、清理脏数据:TRIM
有时候HR公式明明写对了,就是匹配不上。
最常见的原因之一:
数据里有空格。
比如员工姓名看起来都是:
张三
实际上其中一个可能是:
“张三 ”
后面多了一个空格。
肉眼根本看不出来。
这时候TRIM就很好用:
=TRIM(A2)
它可以清理多余空格。
如果还要替换某些字符,可以用SUBSTITUTE。
比如把身份证号、手机号或者某些导入数据中的特殊符号统一掉。
HR做Excel一定要明白一个事情:
很多表格问题,根本不是函数问题,而是数据质量问题。
姓名写法不统一。
部门名称一会叫“人力资源部”,一会叫“HR部”。
员工工号有人带0,有人不带。
这种数据放在任何系统里都会出问题。
所以企业真正要建立的,是统一的数据规则。
Excel只是最后帮你处理问题。

九、拼接字段:TEXTJOIN
有些HR工作需要把多个字段拼起来。
比如生成:
人力资源部-招聘专员-张三
或者批量拼接员工标签、导入字段。
最简单可以直接用:
=A2&"-"&B2&"-"&C2
如果需要一次拼很多字段,可以用TEXTJOIN。
比如:
=TEXTJOIN("-",TRUE,A2:C2)
这种函数不复杂,但特别省机械操作。
尤其是HR要批量整理系统导入模板、员工编号或者通知名单时,很实用。
但也建议注意一点:
如果你经常要把系统数据导出来,再手工拼接,再导回去,就需要重新看看整个流程。
有些字段如果本来就能在业务里统一维护,就没必要每个月人工加工一次。

十、处理报错:IFERROR
VLOOKUP用久了,一定见过:
#N/A
有时候领导打开表,一屏幕全是报错。
不是数据真的坏了,而是当前这行没有匹配到结果。
这时候可以用IFERROR。
比如:
=IFERROR(VLOOKUP(A2,员工表!A:D,2,0),"待核对")
这样找不到员工时,不再显示#N/A,而是显示:
待核对。
IFERROR最大的价值不是好看。
而是帮HR快速把问题数据筛出来。
比如1000条记录里有20条待核对。
那就只检查这20条。
不过做到这里,也要继续问一句:
- 为什么总有20条匹配不上?
- 是离职员工没同步?
- 还是工号录错了?
- 还是两张表的数据版本不一样?
IFERROR可以把错误藏起来,但不能把数据问题解决掉。

Excel够用,为什么还要系统?
很多HR会说:
这些函数我都会。
那是不是Excel就够了?
其实要看公司规模和业务复杂度。
几十个人的时候,一张花名册、一张考勤表,完全能管。
到了几百个人以后,问题慢慢就不是函数了。
- 员工信息一张表。
- 考勤一张表。
- 绩效一张表。
- 工资一张表。
- 招聘还有一张表。
每个月大量工作都在:
- 导数据。
- 匹配数据。
- 复制数据。
- 查错数据。
这时候就算HR的VLOOKUP写得再熟,也只是把重复劳动做快了一点。
更合理的做法,是把稳定、重复的人事业务慢慢沉到系统里。
比如在简道云HRM里,员工档案统一维护,招聘、入转调离、考勤、绩效、薪酬分别在对应业务里管理。
HR日常再需要做分析时,可以基于已有数据去看。
Excel仍然很重要。
临时分析、快速测算、做小范围统计,它依然非常好用。
但系统解决的是另一件事:
让HR少重复维护同一批数据。

最后:函数会10个就够了
HR没必要把自己练成Excel工程师。
真正高频的工作,来来回回也就是几类:
查、数、加、判断、算日期、清数据、拼字段、找异常。
把VLOOKUP、COUNTIF、SUMIF、IF、AND/OR、DATEDIF、日期函数、TRIM、TEXTJOIN、IFERROR这些东西掌握好,已经能解决大部分日常问题。
再往后,真正需要提升的不是:
“还能不能学一个更复杂的函数。”
而是开始判断:
哪些工作应该继续用Excel,哪些重复动作已经应该交给系统。
Excel用得好,能让HR干活更快。
但真正成熟的人事管理,不能一直靠一个特别会做表的人撑着。

