Excel 怎样找出一列身份证号的重复号码

如题所述

各位大侠:

不能用COUNTIF进行判断,因为这函数只能判断前十位的字符。你将一个身份证号重复,将第十一位以后的字符改掉它仍会判断为重复的,造成判断失误。

 

我上传一个附件。请打开文件,启用宏,设C列C2开始是身份证号列,判断结果放D2开始列,请将身份证号粘贴入C列,按判断按钮即可作出判断。

Private Sub CommandButton1_Click()
Dim row_last As Long, flag As Boolean, temp1 As Boolean, temp2 As Boolean
Dim i As Long, j As Long
    
' 找出最后一行
Selection.SpecialCells(xlCellTypeLastCell).Select
flag = False
Do While flag = False
    If ActiveCell.Row = 1 Then
        Exit Do
    End If
    Selection.End(xlToLeft).Select
        temp1 = IsEmpty(ActiveCell.Value)
    Selection.End(xlToRight).Select
        temp2 = IsEmpty(ActiveCell.Value)
    If temp1 = True And temp2 = True Then
        Selection.Offset(-1, 0).Select
    Else
        flag = True
        Exit Do
    End If
Loop
Selection.End(xlToLeft).Select
row_last = ActiveCell.Row
'充空
For i = 2 To row_last
    Cells(i, 4) = ""
Next
' 对比
For i = 2 To row_last - 1
    For j = i + 1 To row_last
        If Cells(i, 3) = Cells(j, 3) Then
        Cells(i, 4) = "有重复"
        Cells(j, 4) = "有重复"
        End If
    Next
Next
End Sub

 

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-14
如果身份证号放在A列,那么可以用以下公式
=if(countif(a:a,a1&"*")>0,"重复","")
这样就可以了
第2个回答  推荐于2018-12-03
假设身份证号存放于B1:B100,在C1中输入=countif(B$1:B$100,B1),然后回车,将单元格内容下拉,填充在C1:C100中,则C列中数字则代表同行B列中身份证号的出现次数,只要数字大于1则表示身份证号重复。本回答被网友采纳
第3个回答  2015-01-14
假设你的身份证号码列为A列,在B1输入如下公式,
=if(countif(A:A,A1)>1,A1,"")
然后下拉。
重复的单元格就会在B列显示了。
第4个回答  2015-01-14

欢迎采纳谢谢!

相似回答