Skip to content

证件号校验

函数名:idc_校验身份证 / idc_Check

功能描述

校验 18 位二代身份证号码是否合法,包括格式、出生日期及校验码验证,支持单元格区域批量输入。

会员等级:🟢 免费版(Free)

语法

excel
=idc_Check(身份证号)

参数

参数名类型必填默认值说明
身份证号Object-18 位身份证号码,支持单个值或单元格区域

返回值

二维数组(Object[,]) - 返回与输入形状一致的二维数组,元素为"合法"或"不合法"。

使用示例

合法身份证校验

公式

excel
=idc_Check("11010519491231002X")

结果

合法

非法身份证校验

公式

excel
=idc_Check("123456789012345678")

结果

不合法

批量校验(区域输入)

公式

excel
=idc_Check(A1:A3)

结果(A1:A3 分别为三个身份证号):

合法
不合法
合法

技术说明

  • 长度与格式校验:必须为 18 位,前 17 位为数字,末位为数字或 X/x(正则 ^\d{17}[\dXx]$)。
  • 出生日期校验:第 7-14 位需为有效日期(格式 yyyyMMdd)。
  • 校验码校验:符合国家标准 GB 11643-1999。
    • 加权因子:{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}
    • 前 17 位数字与加权因子逐位相乘求和,和对 11 取模。
    • 校验码映射表:{ '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' },与实际末位(X 转大写)比对。
  • 区域支持:当输入为单元格区域时,逐个处理并返回同维度的二维数组。

错误处理

错误场景返回值
身份证号为空不合法
长度或格式不符不合法
出生日期无效不合法
校验码不匹配不合法
校验通过合法

基于源代码最新版本文档