对于18位身份证号码用COUNTIF是无法来保证唯一性的,如果前十五位相同.系统就认为重复了.楼主可以试一下。
假设你在A列输入身份证号码
选中A列.数据-有效性-设置,在"允许"下拉框中选"自定义"
公式中输入
=MATCH(A1,A:A,0)=ROW(A1)
可以在设置好公式后会提示公式出错,没有关系,确定即可,有效性可以正常使用.
这样试一下:
在 数据--有效性--自定义--公式输入
=COUNTIF(A$1:A$1000,A1)=1
这里假设在A1:A1000输入身份证号码
点菜单_数据_有效性_弹出对话框,选设置_允许中选自定义,公式中输入=COUNTIF(A:A,A1)=1,
选出错警告_错误信息中输入"号码重复"后确定
18位的文本,怎么都不行!
采用宏解决问题。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i%, j%, c%
j = 0
If Target.Value <> "" Then
For i = 1 To 1000
If Cells(i, 1).Value = Target.Value Then j = j + 1
If j >= 2 Then Exit For
Next i
End If
If j >= 2 Then c = MsgBox("按确定允许重复,按取消清空输入!", vbOKCancel, "身份证号码重复!")
If c = vbCancel Then Target.Value = ""
End Sub
用公式好像不可以完成这种情况,不过可以在出现重复号码时提示,比如用条件格式实现重复号码单元格填充红色警示:
假设身份证号码在A列,则选中A列-菜单栏-格式-条件格式-公式-输入公式=countif(a:a=a1)>1然后在格式里选择填充红色