如何制作工资条,是 Excel 教程中绕不开的一个经典案例,我也写过很多种解决方案,详情请参阅:

  • Excel – 工资条制作,最简便的一种方法
  • Excel VBA(5) – 一键制作工资条
  • Excel – 工资条制作又一新方法,用 vlookup 函数居然也能实现
  • Excel–用index+match隔行插入空行
  • Excel 实用 tips(三)– 如何隔行插入空行?


今天教大家制作奖金条,是工资条的升级版:工资条中每个员工的记录只有一条,而在奖金条中,员工根据绩效可能有多条记录,每个人的记录数各不相同。


案例:


下图 1 是公司各位销售员工的奖金记录明细,请制作奖金条,在每个员工的记录上方都添加一个表头。


效果如下图 2 所示。


解决方案:


1. 将 D 列作为辅助列,在 D2 单元格中输入以下公式 --> 下拉复制公式:

=COUNTA(UNIQUE($A$2:A2))


公式释义:

  • UNIQUE($A$2:A2):
    • 查找出 $A$2:A2 区域内的唯一值;
    • 起始单元格须绝对引用,结束单元格要相对引用,这样随着公式下拉,就能顺序查找出自第一行到当前行区域内的唯一值;
  • COUNTA(...):计算上述唯一值列表的个数


有关 unique 函数的详解,请参阅 Excel – 提取不重复值,终于有专门的函数了。


如果你还没有升级 O365,是用不了 unique 函数的,但是也没关系,可以改用下面的公式:

=MAX($E$1:E1)+(A2<>A1)


公式释义:

  • MAX($E$1:E1):计算自 E1 起,至上方单元格区域内的最大值;
  • (A2<>A1):如果当前行的姓名单元格 A2 与上方的值不一致,则为 true,相当于 1;
  • 整段公式的含义是:如果本行与上一行的姓名相同,则 E 列的值不变,否则 +1


上述公式也可以简化为:

=E1+(A2<>A1)


2. 自 D17 起,从 1 开始顺序向下编号,数据表区域除去标题有多少行,序列编号就到几。


3. 选中数据表的任意单元格 --> 选择菜单栏的“数据”-->“排序”


4. 在弹出的对话中勾选“数据包含标题”--> 在“主要关键字”下拉菜单中选择 (Column D) --> 点击“确定”


5. 复制标题行


6. 选中 A2:C21 区域 --> 按 F5 或 Ctrl+G


7. 在弹出的对话框中点击“定位条件”按钮


8. 在弹出的对话框中选择“空值”--> 点击“确定”


如此,就选中了数据表区域的所有空行。


9. 按 Ctrl+V 将标题行粘贴到所有空行中


给新增的区域加上边框,奖励明细表就完成了。


很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,文中专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。