更新时间:作者:小小条
大家好,今天我们来讲两个基础的序号问题,这两种序号问题想必我们在职场中遇到的概率很高,大部分小伙伴都经历过它对我们的磨练。学会这两种填充序号技巧,你将会减少90%工作上的烦恼!

第一种:分类序号
比如A列有很多不同的水果名称,相同的水果名称是连续的放在一起的,也就是说相同的连续的水果名称为一个分类。
我们想要对不同分类名称添加序号,相同的部分序号相同,不同的水果名称序号递增。如下图所示:
我们可以通过UNIQUE提取唯一分类和MATCH匹配位置的公式组合,实现对A列连续重复名称自动分配序号。下面我们来具体演示一下。
第一步
提取唯一名称列表
使用UNIQUE函数:
=UNIQUE(A2:A7)
获取A2:A7区域去除重复值后的唯一的水果名称列表,结果是以数组溢出的方式返回1列3行溢出区域。
第二步
匹配每个值在唯一列表中的位置
使用经典的MATCH函数:
=MATCH(A2:A7,UNIQUE(A2:A7),0)
MATCH(A2:A7, 唯一列表, 0):
匹配每个值在唯一列表中的位置。
MATCH函数的参数:
第1参数A2:A7:需要匹配的目标值区域,即A列每个单元格水果名称。
第2参数UNIQUE(A2:A7):匹配的查找区域,即第一步生成的唯一名称列表。
第3参数0:表示精确匹配,即必须完全一致才返回结果。
匹配逻辑:
MATCH会逐个检查A列的每个值,在UNIQUE生成的唯一列表中找到其第一次出现的位置,并返回该位置的“序号”。
唯一列表是1列多行的数组区域:{"苹果";"橘子";"香蕉"}:
A2的“苹果”→匹配到唯一列表的第1行→返回1
A3的“苹果”→匹配到唯一列表的第1行→返回1
A4的“苹果”→匹配到唯一列表的第1行→返回1
A5的“橘子”→匹配到唯一列表的第2行→返回2
A6的“橘子”→匹配到唯一列表的第2行→返回2
A7的“香蕉”→匹配到唯一列表的第3行→返回3
第二种:动态连续序号
比如A列是一列水果名称列表(可能含重复的,我们不做区分,都一律视为不同的),我们想要在B列用公式生成一列由1开始的等差为1的顺序序号。当新增行数据或删除行数据时,序号能自动增加或补位减少,不会发生短节。如下图所示:
我们可以使用ROWS结合SEQUENCE函数快速解决。
第一步
获取当前数据行数
使用ROWS函数:
=ROWS(A:A)
得到A列整列的总行数1048576行。
由于行数太多了,包含了A7单元格以下的大量的空白单元格,为了减少空白单元格的显示:
=ROWS(A:.A)
我们在A:A区域的冒号右面添加一个点(.),可以实现对A:A区域数据区域末尾空值单元格的裁剪,使其引用但不显示,也不统计。所以A列只统计有数据的总行数为7行。
由于A:.A区域已有数据的总行数包含标题行“名称”,我们需要:
=ROWS(A:.A)-1
在上一步的结果的基础上减去1,得到除首行标题行外的总行数6。
第二步
根据总行数生成序号
使用SEQUENCE函数:
=SEQUENCE(ROWS(A:.A)-1)
SEQUENCE函数用于在Excel中生成指定行数和列数的数字序列。
基本语法:
=SEQUENCE(行数, [列数], [起始值], [增量])
行数(必填):设定生成序列行数
列数(可选):设定生成序列的列数,默认为1列
起始值(可选):设定序列的起始值,默认为1
增量(可选):设定序列步长,默认为1(正数为递增,负数为递减)
这里我们用SEQUENCE函数生成了6行的序号,序号默认从1开始,等差为1。
无论我们后期对A列数据源新增行数据,减少行数据,B列序号都会动态更新,智能方便。
版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除