如何根据部门主管标识,给Excel列表中的每个部门递增编号?

Excel学习世界 2024-02-01 22:11:26

不知为何,网友最近很爱咨询编号相关问题:如何根据部门主管标识,以整个部门为单位统一编号,其他部门编号依次顺序递增?

案例:

下图 1 中 C 列为 M 的表示部门经理,部门经理下方的所有人员是其员工,按以下要求给 B 列的人员编号:

从 C 列的第一个 M 开始编 1;

M 下方为空表示是同一个部门的员工,跟上方的 M 共用一个编号;

当遇到 C 列的下一个 M 时,编号递增;

如果 C 列的上方没有 M,表示没有部门经理,将编号设置为 0

效果如下图 2 所示。

解决方案:

1. 在 A2 单元格中输入以下公式 --> 下拉复制公式:

=(C2<>"")+IF(A1<9E+307,A1,0)

公式释义:

C2<>"":判断 C2 单元格是否不为空,即是否有值,如果有值返回 true,反之为 false,相当于 1 和 0;

A1<9E+307:

9E307 跟 9E+307 一样,表示 9*10^307,这几乎是 Excel 中的最大数值;

所以 <9E+307 通常用来表示所有数值,此处 A1<9E+307 也可以用 isnumber(A1) 来替代;

IF(...,A1,0):上面这段设定,是为了 A1 单元格能够参与加法计算;如果 A1 不是数值,就返回 0,否则就返回 A1 的值,将结果与第一段逻辑值公式的结果相加,起到递增的效果;

整段公式的意思就是,如果 C 列有值,记 1,A 列的结果为上一单元格的值 +1;如果 C 列没有值,记 0,A 列的结果为上一单元格的值 +0

如果在 C2 单元格输入 M,A2 的编号就变成了 1,符合案例需求。

0 阅读:60

Excel学习世界

简介:Excel 学习交流