泪崩丨领导叫我在上万个编号里找出缺漏……

工作中,我们经常处理的数据总是具有编号的,往往都是从小到大依次排序。比如下图是从 ERP 系统中导出的某任务 2018 年的已有编号,数据多达 3 万余条。

泪崩丨领导叫我在上万个编号里找出缺漏……

虽说这些都应该是连续的编号,不允许有缺号存在。但偶尔会因为误删或者其他特殊原因,出现缺号的情况。

如果出现这种情况,领导又要我们找出缺少的编号,如何做比较方便呢?

废话不多讲啦,小 E 这就为大家展示此类问题的解决之道!


- 1 -

分析问题,找规律


从数据源可以看出,此类编号往往都是由固定的文本前缀+数字组成,如 W1800001,W 就是固定的前缀,而后面跟着的所有数字都是等差顺序编号,比如上图都是按照依次递增 1 来编号,如 W1800001、W1800002、W1800003。


- 2 -

寻找办法,想思路


想要找出缺少的编号是哪些,思路其实很简单。用完整无缺的编号同有缺少的编号相对比,便可以找出缺少的编号。


- 3 -

解决问题,动手做


Step 1

去除无关紧要的部分

由于字母前缀是固定不变的,我们可以先将其忽略。然后可以通过查找替换,将字母前缀替换掉。

泪崩丨领导叫我在上万个编号里找出缺漏……

Step 2

找出数值区间的最小值和最大值

由于要构造完整的连续数值区间,所以需要从数据源中找出这组数据的最小值和最大值。

我们可以直接使用 MIN 和 MAX 函数,来找出最小值和最大值。

泪崩丨领导叫我在上万个编号里找出缺漏……

操作步骤↓

❶ 在 C2 单元格中输入公式 =MIN(A:A) ,求出最小值

❷ 在 C3 单元格中输入公式 =MAX(A:A),求出最大值


Step 3

构造连续的数值区间

有了数据源中的最小值和最大值,我们便可以使用填充序列功能构造完整的不间断数据区间。

泪崩丨领导叫我在上万个编号里找出缺漏……

操作步骤↓

❶ 在 B2 单元格中输入 A 列数值的最小值,这里是 18000001;

❷ 单击【开始】选项卡下的「编辑」组中的【填充】-【序列】;

❸ 在弹出的「序列」对话框中选择系列产生在「列」,类型选择「等差数列」,步长值为 1,终止值输入 A 列数值的最大值,这里是 18031441。


Step 4

统计次数

有了完整的不间断数据区间后,我们接下来需要利用 COUNTIF 函数统计出现的次数。

COUNTIF 函数是用来计算某个区域中满足给定条件的单元格数目。COUNTIF 函数是我们常用的函数之一,语法如下↓

=COUNTIF(range,criteria)


其中 range 参数为要统计的数据区域,criteria 参数为要统计的数据。

现在 A 列是有缺失的数据组,B 列是完整的编号数据组。

我们在 C2 单元格中输入公式↓

=COUNTIF($A$2:$A$31431,B2)


注意$A$2:$A$31431 需要采取绝对引用,这样才能保证在向下填充公式时,统计的数据区域固定不变。

然后向下填充,就可以统计出 B 列完整的编号数据组中的每个数据在 A 列中出现的次数。

泪崩丨领导叫我在上万个编号里找出缺漏……

如果 B 列数据组中的某一个编号在 A 列中的统计次数结果是 1,则表示该数据在 A 数据组中存在,如果结果是 0,则表示该数据缺少,即 A 列缺少该编号。


Step 5

筛选缺号

我们已经利用 COUNTIF 函数在 C 列统计出 B 列数据在 A 列中出现的次数,也知道了结果为 0 代表缺少这个编号。那么接下来只需要利用筛选功能,把 C 列为 0 的 B 列数据筛选出来即可找到所有缺少的编号。

泪崩丨领导叫我在上万个编号里找出缺漏……

操作步骤↓

❶ 选中数据区域中任意一个单元格,单击【数据】选项卡下的【筛选】命令;

❷ 单击「出现的次数」列的筛选按钮,勾选 0,然后点击【确定】;

❸ 此时 B 列中显示的编号即为 A 列中缺少的编号。


- 4 -

总结


小 E 通过分析问题、寻找思路、解决问题的三步走,一起带大家解决了一个比较有代表性的问题。

这里我们通过查找问题数据的共性,提炼出核心关键点,然后采取了最高效的解决办法,搞定了这个问题!以后遇到连续编号找缺号类的问题都可以用这个思路来解决哦~


分享到:


相關文章: