不知为何,网友最近很爱咨询编号相关问题:如何根据部门主管标识,以整个部门为单位统一编号,其他部门编号依次顺序递增?
案例:
下图 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,符合案例需求。
领取专属 10元无门槛券
私享最新 技术干货