综合实战:员工信息管理表 —— 16 个函数大阅兵

16个函数大阅兵:员工信息管理表综合实战

📥 本章配套练习册(数据已录入、写完公式自动判分):点击下载 综合实战-员工信息管理表-练习.xlsx

难度:⭐⭐⭐⭐ | 建议用时:90 分钟 | 前置知识:全部 16 章

本章目标

用一个贴近真实工作的"员工信息管理表"场景,把 16 个函数全部用一遍。能独立完成本章,说明你已经真正掌握了这些函数。

⚠️ 涉及 TODAY() 的题目,答案按"今天 = 2026/7/28"计算。


一、场景背景

你是公司的人事专员,手里有一张员工信息总表。老板会随时问你:“技术部平均工资多少?““E004 是谁?““谁的绩效最高?““张三工龄几年了?"——用公式把这些问题全部做成自动计算,数据一变结果自动更新。

二、练习数据准备

新建工作表,录入下表(录入前先把 E 列设为"文本"格式,防止身份证号变形):

A B C D E F G
1 工号 姓名 部门 入职日期 身份证号 基本工资 绩效分
2 E001 张三 销售部 2020/3/15 110105199003078834 8000 85
3 E002 李四 技术部 2018/7/1 110105198812156543 12000 92
4 E003 王五 销售部 2023/11/20 110105199505232211 7500 58
5 E004 赵六 技术部 2019/5/8 110105199201304422 11500 76
6 E005 孙七 人事部 2022/9/12 110105199311127755 7000 88
7 E006 周八 销售部 2021/6/25 110105199404186688 9000 91

再准备一个查询区(I 列):

I
1 要查的工号
2 E004
3 E009

三、任务清单(请先独立完成)

第一关:文本与日期(RIGHT / MID / DATEDIF / TODAY)

题号 任务 作答位置 用到函数
1 从身份证号提取每人出生年份(4位),向下填充 H2 MID
2 从身份证号提取每人出生月份(2位) I2(换个位置也行) MID
3 从工号提取数字编号部分(如 E001 → 001) J2 RIGHT
4 计算每人到今天为止的工龄(整年),向下填充 K2 DATEDIF+TODAY
5 计算张三入职到今天共多少个月 L2 DATEDIF

第二关:逻辑判断(IF)

题号 任务 作答位置 用到函数
6 绩效评级:≥90"A”、≥75"B”、≥60"C”、其余"D”,向下填充 M2 嵌套IF
7 工龄 ≥5 年的显示"资深员工”,否则显示"普通员工”(引用 K 列结果) N2 IF

第三关:查找引用(VLOOKUP / XLOOKUP / INDEX+MATCH / IFERROR)

题号 任务 作答位置 用到函数
8 根据 I2 的工号查出姓名 J2区域→改用 P2 等空白列均可 VLOOKUP
9 根据 I2 的工号查出基本工资 同上 VLOOKUP
10 查 I3(E009,不存在),用 IFERROR 显示"查无此人” 同上 IFERROR+VLOOKUP
11 用 XLOOKUP 根据工号查姓名(365/2021 用户) 同上 XLOOKUP
12 用 XLOOKUP 向左查找:根据姓名"王五"查工号 同上 XLOOKUP
13 用 INDEX+MATCH 完成第8题同样的查找(老版本方案) 同上 INDEX+MATCH
14 双向查找:查"赵六"的"基本工资"(行、列都用 MATCH) 同上 INDEX+MATCH×2

第四关:统计分析(COUNTIF / SUMIF / COUNTIFS / SUMIFS / MAX / ROUND)

题号 任务 作答位置 用到函数
15 销售部有多少人 空白区 COUNTIF
16 技术部工资总额 空白区 SUMIF
17 绩效大于等于 80 的有几人 空白区 COUNTIF
18 销售部且绩效 ≥80 的人数 空白区 COUNTIFS
19 技术部且绩效 ≥75 的工资总额 空白区 SUMIFS
20 全公司最高绩效分 空白区 MAX
21 技术部的平均工资(SUMIF÷COUNTIF),保留 2 位小数 空白区 +ROUND
22 绩效 80 分及以上员工的工资总额(提示:单条件也可以用 SUMIFS 或 SUMIF) 空白区 SUMIF

四、任务讲解(做完再看)

第1题:=MID(E2,7,4)

身份证第 7 位开始的 4 位是出生年。向下填充后:1990 / 1988 / 1995 / 1992 / 1993 / 1994。

第2题:=MID(E2,11,2)

月份在第 11~12 位。张三 → 03。

第3题:=RIGHT(A2,3)

工号统一为"字母+3位数字",右边 3 位就是编号 → 001(文本)。

第4题:=DATEDIF(D2,TODAY(),"Y")

早日期(入职)在前,TODAY() 在后,“Y” 取整年。结果:张三 6、李四 8、王五 2、赵六 7、孙七 3、周八 5。

第5题:=DATEDIF(D2,TODAY(),"M")

“M” 是总整月数:6 年 ×12 + 4 个零头月 = 76 个月。

第6题:=IF(G2>=90,"A",IF(G2>=75,"B",IF(G2>=60,"C","D")))

从高到低三层筛。结果:张三 B、李四 A、王五 D、赵六 B、孙七 B、周八 A。 检查王五 58:三层全落空 → D ✓。

第7题:=IF(K2>=5,"资深员工","普通员工")

直接引用第4题算好的 K 列。资深:张三(6)、李四(8)、赵六(7)、周八(5)✓;王五(2)、孙七(3)是普通员工。 注意 5 年整也算资深(>= 包含等于),周八正好 5 年。

第8题:=VLOOKUP(I2,$A$2:$G$7,2,FALSE)

工号在首列 ✓,姓名是区域第 2 列。I2 = E004 → 赵六。区域一定要 $ 锁定。

第9题:=VLOOKUP(I2,$A$2:$G$7,6,FALSE)

基本工资在区域第 6 列(A=1…F=6)→ 11500。

第10题:=IFERROR(VLOOKUP(I3,$A$2:$G$7,2,FALSE),"查无此人")

E009 不存在 → VLOOKUP 报 #N/A → IFERROR 兜底 → 查无此人。

第11题:=XLOOKUP(I2,$A$2:$A$7,$B$2:$B$7,"查无此人")

与第8题同结果(赵六),还顺手内置了兜底。

第12题:=XLOOKUP("王五",$B$2:$B$7,$A$2:$A$7)

查找列 = 姓名 B,返回列 = 工号 A(向左!)→ E003。

第13题:=INDEX(B2:B7,MATCH(I2,A2:A7,0))

经典组合,结果与 VLOOKUP 一致 → 赵六。老版本 Excel 用这个。

第14题:=INDEX(B2:G7,MATCH("赵六",B2:B7,0),MATCH("基本工资",B1:G1,0))

行 MATCH 在姓名列找赵六 → 4;列 MATCH 在表头 B1:G1 找"基本工资" → 5;B2:G7 第4行第5列 = F5 → 11500。 注意这次查找列是 B 列(姓名),所以 INDEX 区域从 B 列开始选,保证行列对齐。

第15题:=COUNTIF(C2:C7,"销售部") → 3

第16题:=SUMIF(C2:C7,"技术部",F2:F7) → 12000+11500 = 23500

第17题:=COUNTIF(G2:G7,">=80") → 85、92、88、91 → 4

第18题:=COUNTIFS(C2:C7,"销售部",G2:G7,">=80") → 张三 85、周八 91 → 2

第19题:=SUMIFS(F2:F7,C2:C7,"技术部",G2:G7,">=75") → 李四 92✓(12000)+ 赵六 76✓(11500)= 23500

第20题:=MAX(G2:G7) → 92(李四)

第21题:=ROUND(SUMIF(C2:C7,"技术部",F2:F7)/COUNTIF(C2:C7,"技术部"),2)

23500 ÷ 2 = 11750.00。条件和 ÷ 条件数 = 条件平均,ROUND 修到 2 位小数。

第22题:=SUMIF(G2:G7,">=80",F2:F7)

绩效列当条件区域,工资列当求和区域:张三 8000 + 李四 12000 + 孙七 7000 + 周八 9000 = 36000。 (条件与求和不同列,必须三参数写法。)


五、参考答案速查表

题号 公式 结果
1 =MID(E2,7,4) 1990(张三)
2 =MID(E2,11,2) 03
3 =RIGHT(A2,3) 001
4 =DATEDIF(D2,TODAY(),"Y") 6 / 8 / 2 / 7 / 3 / 5
5 =DATEDIF(D2,TODAY(),"M") 76
6 =IF(G2>=90,"A",IF(G2>=75,"B",IF(G2>=60,"C","D"))) B / A / D / B / B / A
7 =IF(K2>=5,"资深员工","普通员工") 张三、李四、赵六、周八=资深
8 =VLOOKUP(I2,$A$2:$G$7,2,FALSE) 赵六
9 =VLOOKUP(I2,$A$2:$G$7,6,FALSE) 11500
10 =IFERROR(VLOOKUP(I3,$A$2:$G$7,2,FALSE),"查无此人") 查无此人
11 =XLOOKUP(I2,$A$2:$A$7,$B$2:$B$7,"查无此人") 赵六
12 =XLOOKUP("王五",$B$2:$B$7,$A$2:$A$7) E003
13 =INDEX(B2:B7,MATCH(I2,A2:A7,0)) 赵六
14 =INDEX(B2:G7,MATCH("赵六",B2:B7,0),MATCH("基本工资",B1:G1,0)) 11500
15 =COUNTIF(C2:C7,"销售部") 3
16 =SUMIF(C2:C7,"技术部",F2:F7) 23500
17 =COUNTIF(G2:G7,">=80") 4
18 =COUNTIFS(C2:C7,"销售部",G2:G7,">=80") 2
19 =SUMIFS(F2:F7,C2:C7,"技术部",G2:G7,">=75") 23500
20 =MAX(G2:G7) 92
21 =ROUND(SUMIF(C2:C7,"技术部",F2:F7)/COUNTIF(C2:C7,"技术部"),2) 11750
22 =SUMIF(G2:G7,">=80",F2:F7) 36000

六、毕业自测清单

下面 16 句话,每句都能不假思索地写出公式,你就真正毕业了:

  • 显示今天日期 → =TODAY()
  • 求区域最大值 → =MAX(区域)
  • 保留两位小数 → =ROUND(数字,2)
  • 取右边 4 个字符 → =RIGHT(文本,4)
  • 从第 7 位取 4 个字符 → =MID(文本,7,4)
  • 大于等于 60 显示及格 → =IF(A1>=60,"及格","不及格")
  • 出错显示空白 → =IFERROR(公式,"")
  • 数某部门人数 → =COUNTIF(部门列,"销售部")
  • 汇总某部门工资 → =SUMIF(部门列,"销售部",工资列)
  • 数部门+性别两条件 → =COUNTIFS(部门列,"销售部",性别列,"男")
  • 多条件汇总工资 → =SUMIFS(工资列,部门列,"销售部",性别列,"男")
  • 算工龄 → =DATEDIF(入职日,TODAY(),"Y")
  • 按键查值 → =VLOOKUP(键,区域,列号,FALSE)
  • 新版查找 → =XLOOKUP(键,查找列,返回列,"兜底")
  • 找位置 → =MATCH(键,单列,0)
  • 按位置取值 → =INDEX(列,MATCH(键,键列,0))

七、下一步学习建议

你已经掌握了 Excel 函数的核心骨架,接下来可以按这个顺序进阶:

  1. AVERAGE / SUM / COUNT / LEN / LEFT —— 看一眼就会的基础函数
  2. TEXT —— 日期和数字的格式化输出(如把日期显示成"2026年7月")
  3. EOMONTH / EDATE / WORKDAY —— 日期计算进阶(月末、N个月后、工作日)
  4. 数据透视表 —— 不用函数的汇总神器,和 SUMIFS 互为补充
  5. FILTER / UNIQUE / SORT(365 动态数组)—— 新一代数据处理
  6. LET / LAMBDA —— 把复杂公式写得像程序一样清晰

恭喜完成全部课程!🎉

世界是你们
使用 Hugo 构建
主题 StackJimmy 设计