“电话征订名单中,多次出现同一家公司!”

这是某个正在开展开发新客户的销售部门里发生的事。这个部门负责电话征订的共有10位销售人员,这些人员先制作电话征订名单,然后根据名单给客户打电话。由于每位销售人员都是通过网络等方式调查并收集目标企业信息的,所以同一个企业会出现在不同的销售人员的电话名单中。

这时,如果大家一同开始给目标企业打电话,就会导致同一家公司多次接到同一公司的销售人员的电话,最终一定会听到客户的投诉:“别再给我们打电话了!”因此,经常有人来问我如何才能避免这样的事情发生。

像这样,在管理客户名单时,应该如何检查是否存在重复的数据?

首先我们来看一下简单的判断方法。比如,A 列为 ID 信息,要想检查其中是否有重复的内容,可按照以下逻辑判定。

  • 计算该 ID 在 A 列中的数目
  • 如结果为1个则表示没有重复数据,如果是2个以上则可以认定为有重复

那么,我们来看一下应该如何在 Excel 中处理重复数据。在此,假设想要在 B 列中显示是否有重复数据的判定结果。

➊ 在单元格 B2中输入以下公式:

=COUNTIF(A:A,A2)

这一公式用于计算在 A 列中与单元格 A2有相同数值的单元格的数目。

若结果为1个,说明 A 列中不存在与单元格 A2有相同数值的单元格……也就是说不存在重复数值。

若结果显示为2,说明 A 列中存在与单元格 A2有相同值的单元格,可以得知数据有重复。

➋ 复制到数据的最后一行

像这样,在一列中连续输入已经存在的数值时,需要复制的行数会增多。用鼠标将相邻列中的函数公式拖拽复制到最后一行,是一件十分麻烦的事。下面的技巧可以让你在一瞬间完成这项操作。

在单元格 B2中输入公式后,再次选中单元格 B2,将鼠标移到被选中单元格右下角的浮标上。这时,我们可以看到原本白色十字的游标变成了黑色。接下来,我们需要双击这个黑色游标。

这样,我们就能够确认 A 列中的单元格是否存在重复的数据。

选中并删除重复的单元格

即使知道工作表中存在重复数据的单元格,也还有问题需要解决。一般来说,确认工作表中存在重复的数据后,需要删除重复的信息,将表格整理为没有重复数据的状态。利用先前的方法只能确认是否存在重复的数据,无法选中并删除重复的单元格。

因此,我们需要将原来的公式修改成这样:

=COUNTIF($A$2:A2,A2)

在单元格 B2中输入=COUNTIF($A$2:A2,A2)

在单元格 B2中输入公式时,指定与第二参数一致的单元格查找范围的第一参数为“$A$2:A2”,也就是单元格 A2。因此,得出的结果自然为1。

接下来,双击右下角游标,将这一单元格复制到最后一行,就会出现以下画面。

将单元格 B2复制到最后一行

这也就是我在第1章里稍微提到过的自动筛选,即只抽出 B 列中值为2的单元格后并删除,即可删除所有重复项。

自动筛选抽取 B 列值为2以上的单元格

单元格 B2的函数中的第一参数“$A$2:A2”,指定从 A2到 A2作为函数的范围。冒号(:)前的内容表示只引用范围起始点的单元格,意为绝对引用。如此一来,将这一单元格向下拖拽复制后,单元格 B3的范围为“$A$2:A3”,单元格 B4为“$A$2:A4”,以此类推。也就是说,作为指定范围的单元格的起点,即单元格 A2是固定的,终点的单元格却是相对引用,可以不断延续。这样就让人觉得第一参数指定的范围在无限扩展。

在 B 列的各单元格中的函数引用的并不是位于该单元格下面的单元格中的内容。所显示的数字表示的是“该单元格相邻的单元格的数值,在 A 列中出现了几次”。

照此推断,就能得出“B 列中显示有2以上的数字的数值表示:在 A 列中的前面的某行中已经出现过有相同值的单元格”,表示数据有重复。因此,如果将 B 列中含有2以上的数据的单元格全部删去,A 列中就不会存在重复的数值了。

2007之后的 Excel 版本都追加了“删除重复”功能,但我个人不推荐使用,因为在实际操作中曾发生过删除了并没有重复的数据的事例。