一份联系人表在不同同事之间流转后,经常会出现看似细小的问题:某列号码带空格,另一个文件没有;同一号码有两个备注;有些姓名是空白。直接点“删除重复项”,可能让表格变短,却也可能把需要保留的信息一起删掉。
本文从已经取得、且有权处理的联系人文件开始,不涉及抓取号码或安装插件。产品关联说明:本文属于 WAContact 相关技术内容;下述整理方法不依赖该产品,也不是产品导出效果的独立测评。
一、把原始数据和整理结果分开
先复制文件,原件只用于核对。工作副本中保留原始号码、保存姓名、显示名称,再增加比较键、重复次数和处理备注。不要在第一步就把原始姓名覆盖成统一名称,因为你还不知道两个名称不同的原因。
下面的列位置仅是本文约定,不代表任何工具固定的导出格式。如果实际表头不同,先完成字段对应,再使用后面的公式。
| 列 | 本文用途 | 是否直接修改 |
|---|---|---|
| A:原始号码 | 保留收到的值 | 不修改 |
| B:保存姓名 | 保留原备注 | 不修改 |
| C:显示名称 | 保留另一种名称来源 | 不修改 |
| D:号码比较键 | 按明确规则生成辅助值 | 可以重算 |
| E:出现次数 | 定位需要复核的重复记录 | 由公式生成 |
| F:处理备注 | 记录冲突及确认依据 | 人工填写 |
另外记录原文件名、取得日期和账号代号。不要把这些信息只写在文件名里:多份表格合并后,单条记录仍需要有来源。交接时也应说明哪些列是原始信息,哪些列是后来整理的。
二、先检查单元格类型,而不是显示效果
号码是用来识别记录的字符串,不参与加减乘除。在空白辅助单元格输入=ISTEXT(A2),可以检查 A2 当前是否为文本。但返回 TRUE 只能说明当前类型,不能证明号码从未被修改,也不能判断是否可拨通。
如果已有 XLSX 文件,先检查原值和类型,不必为了“统一”再转换一次。对于 CSV,应通过表格软件的数据导入功能读取,并在加载前将号码列设为文本;不同版本的入口名称可能不同。
需要特别区分显示与存储。列宽不足、显示为科学计数法,不一定意味着底层值已经改变;但若之前被当成数字处理而发生精度损失,事后改成文本也无法恢复。正确做法是回到未损坏的原文件重新导入,而不是对着显示结果补数字。
同样,不应因为某条记录没有加号,就批量给它补同一个国家代码。缺少来源信息的本地号码先标为待核对。空姓名也不意味着号码无效,更不能据此推断对方身份。
三、只清理确定属于展示差异的字符
假设已经确认:这批号码中的普通空格、不换行空格及半角连字符只用于排版,不含分机或其他业务编码。此时可以在 D2 使用下列公式,再向下填充:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,UNICHAR(160),"")," ",""),"-","")公式只删除三类指定字符,保留加号和数字,不会验证国际号码规则。示例字符串+000 100-1会变成+0001001;它是刻意构造的测试字符串,不代表可拨打的号码,不应用于联系或业务导入。
这里没有直接用 TRIM,是因为它并不负责删除全部内部空格,也不会单独处理不换行空格。替换规则仍然有限:全角符号、括号、制表符或分机标记不会自动处理。遇到这些情况,应先确认含义,不能扩大替换范围后把异常悄悄吞掉。
如果号码列混入任意文本,不要把这条公式称为“号码标准化器”。它只负责已经约定的字符清理。可以先筛出少量样本,比较 A 列和 D 列,再决定是否用于整份副本。
四、标记重复项,不立即删除
假设数据从第 2 行到第 1000 行,在 E2 中输入以下公式并向下填充。范围应按实际数据调整,不要直接引用整列进行大量逐行比较:
=IF(D2="","",SUMPRODUCT(--EXACT(D2,$D$2:$D$1000)))这里使用 EXACT 进行字符串精确比较,SUMPRODUCT 累加匹配项,结果包含当前行。空比较键不计入重复组,出现次数大于 1 的行才进入复核。若本地 Excel 使用分号作为参数分隔符,应相应调整公式。
例如,两条记录的比较键相同,但保存姓名分别是“示例联系人甲”和“Demo-A”,不能只凭行号决定保留哪条。先查看来源和取得时间,再判断是同一人的不同备注,还是存在尚未解释的冲突。
即使号码相同,也不代表现实身份已经被验证;相同姓名、不同号码则更不能自动合并。处理备注可以写“格式差异”“名称待确认”或“保留多来源记录”,而不是一律填“重复已删除”。
五、给每次整理留下可复查的结果
整理完成后,记录原始数据行数、空号码行数、重复组数量,以及实际采取的操作。注意“重复组”和“重复行”不是同一个数字:某个号码出现三次,是一个组,不是三个组。
如果确实需要生成合并后的名单,先保留完整工作副本,再另存一份交付表。交付表应清楚标明采用的名称、原始来源和待确认事项。不要只留下合并结果,让后来的人无法解释少掉的记录去了哪里。
再次打开文件后,抽查一条普通记录、一条空姓名记录和一组冲突记录。检查辅助公式的范围是否覆盖新增行、号码是否被再次转成数值,以及筛选条件是否让部分记录暂时不可见。
六、常见问题与最后检查
改成文本后号码仍不对怎么办?先比较原件。如果原件已丢失数字,格式设置不能补回信息,需要寻找可信的原始来源。
重复公式返回 1,能证明没有重复吗?只能说明在指定范围和当前比较规则下没有相同字符串。漏填公式、不同编号形式或范围未覆盖,都可能影响结果。
姓名为空的行要不要删?先检查用途和来源,单独列为待核对,不因缺少备注而判断记录没有价值。
交接前确认原件仍在、清理规则有说明、公式范围正确、冲突有备注。联系人文件含个人信息,分享前应限制访问范围;截图用虚构样本,不在公开讨论中贴出真实姓名和号码。
总结
联系人清洗不是把表格变得更短,而是让每次修改都有依据。把原始列、辅助列和人工判断分开,先解决类型与展示差异,再处理重复和名称冲突,才能保留一个可以回查的数据过程。
参考:Microsoft:Excel 函数分类索引。本文公式是字段整理示例,不是号码真实性验证。