查找具有相同数字序列的重复项

时间:2015-07-13 07:56:11

标签: excel excel-vba vba

我目前正在尝试过滤大量用户数据以查找重复的帐户。找到识别用户的最佳方式是电话号码。 不幸的是,数字不是以相同的格式保存,所有单元格也没有相同的数字。见下文:

+1 912 555 1234
001 912 5551234
(912)5551234
912 5551234
912-555-1234

无论如何只是重复搜索特定序列?所以在这种情况下5551234。

我可以通过简单的"手动删除所有特殊符号(括号,破折号,空格等),然后替换"对吧?但是仍然会有不同数量的单元格,这就是正常重复搜索不起作用的原因。

我非常感谢你的帮助。非常感谢你!

1 个答案:

答案 0 :(得分:1)

假设您无法使用VBA,我已经汇总了一系列快速功能来处理您上面的所有示例。它可能不全面,但你会得到一般的想法。将以下所有代码放入电子表格的第2行(如果您愿意,可以使用标题)

Column A: Tel numbers
Column B (remove whitespace): =SUBSTITUTE(A2, CHAR(32),"")
Column C (remove brackets and dashes): =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2, CHAR(40),""), CHAR(41),""),CHAR(45),"")
Column D (replace +1 with 0): =IF(LEFT(C2,1)="+","0"&RIGHT(C2,LEN(C2)-2),C2)
Column E (replace 001 with 0): =IF(LEFT(D2,3)="001","0"&RIGHT(D2,LEN(D2)-3),D2)
Column F (ensure leading 0): =IF(LEFT(E2,1)="0",E2,"0"&E2)

只需复制/粘贴单元格,示例中使用的所有数字都具有相同的格式(在F列中)。

请注意,B / C列可以轻松组合到一个列中,但我将它们分开以便更容易理解它是如何工作的。组合列将是     = SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,CHAR(32),“”),CHAR(40),“”),CHAR(41),“”),CHAR(45),“”)

如果您需要删除任何更多特殊字符(除了括号和破折号),您可以在this table中找到SUBSTITUTE函数使用的所有ascii代码。