证件号校验
函数名: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 转大写)比对。
- 加权因子:
- 区域支持:当输入为单元格区域时,逐个处理并返回同维度的二维数组。
错误处理
| 错误场景 | 返回值 |
|---|---|
| 身份证号为空 | 不合法 |
| 长度或格式不符 | 不合法 |
| 出生日期无效 | 不合法 |
| 校验码不匹配 | 不合法 |
| 校验通过 | 合法 |