身份证判断性别的原理就是,身份证倒数第二位是单数表示是男的,单数是女的
可以用IF公式来判断,但是需要下拉,如果几百上千条数据还好,要是上万就不好拉取了,如果数据太多,可以用VBA代码判断
=IF(MOD(VALUE(MID(A1,17,1)),2)=0,"女","男")
原理:
MID(A1,17,1) 可以提取出身份证号码的第17位数字,也就是倒数第二位。
VALUE() 函数将这个字符转换为数值。
MOD() 函数可以判断这个数字是否为偶数。
如果是偶数,则判断为女性,否则为男性。
VBA代码
进入VBA界面
' 思路就是就是先获取身份证号码
' 然后判断是不是18位,不是18位表示无效,最后根据奇数还是偶数判断性别
Sub IdentifyGender()
Dim lastRow As Long
Dim i As Long
Dim idNumber As String
Dim secondLastDigit As Integer
' 获取最后一行数据
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
' 遍历每一行数据
For i = 1 To lastRow
' 获取身份证号码
idNumber = CStr(Cells(i, "A").Value)
' 判断身份证号码是否有效
If Len(idNumber) = 18 Then
' 获取倒数第二位数字
secondLastDigit = CInt(Mid(idNumber, Len(idNumber) - 1, 1))
' 判断性别
If secondLastDigit Mod 2 = 1 Then
Cells(i, "B").Value = "男"
Else
Cells(i, "B").Value = "女"
End If
Else
' 处理无效数据
Cells(i, "B").Value = "无效"
End If
Next i
' 处理完成后的弹窗提醒
MsgBox "性别识别完成!"
End Sub