Skip to content

idc_ExtractID函数

函数名:sfz_提取身份证 / idc_ExtractID

函数功能

从文本中提取符合中国大陆18位身份证号码格式的所有身份证号码,支持横向或纵向输出。

参数规范

参数名类型必填示例特殊说明
inputString"张三身份证号是110105199003071234"含身份证号码的任意文本
horizontalOutputBooleanTRUE输出方向,默认横向输出

使用案例

单条文本提取

问题描述:提取文本中的身份证号码 公式演示

excel
=idc_ExtractID("张三身份证号是110105199003071234")

输出效果(横向): | 110105199003071234 |

多条号码提取与输出方向控制

问题描述:文本中含多个身份证号码,横向或纵向输出 公式演示

excel
=idc_ExtractID("身份证A:110105199003071234;身份证B:320311198812120019", FALSE)

输出效果(纵向): | 110105199003071234 | | 320311198812120019 |

空文本或无匹配时返回空数组

问题描述:无身份证号码时无输出 公式演示

excel
=idc_ExtractID("无身份证号码的文本")

输出效果:空数组或空单元格

技术说明

正则表达式规则

  • 使用正则表达式匹配18位身份证号码,具体格式为: (\d{6})([1-9]\d{3})((0[1-9])|(1[0-2]))(([0-2][1-9])|(3[0-1]))\d{3}[0-9Xx] 即:6位地址码 + 4位年份(不以0开头)+ 2位月份 + 2位日期 + 3位顺序码 + 1位校验码(数字或X/x)

输出格式

  • horizontalOutput = TRUE:横向一行多列输出
  • horizontalOutput = FALSE:纵向一列多行输出

调用说明

函数内部调用通用正则提取函数wb_正则提取完成匹配与格式化输出。

异常处理

错误场景返回值
输入为空空数组或空值
无匹配结果空数组或空值

扩展应用

批量文本身份证号码提取

适用于日志、批量文档等含混合内容中自动提取身份证信息。

结合数据校验

配合身份证格式验证函数,提升数据录入及审核效率。

注:本函数依赖wb_正则提取,需确保该辅助函数可用。测试环境包括WPS 2019+和Excel 365。