Skip to content

idc_Birthday函数

函数名:sfz_生日 / idc_Birthday

函数功能

从15位或18位身份证号码中提取出生日信息,并返回格式为 YYYY-MM-DD 的字符串。支持自定义日期分隔符,如 /. 等。

参数规范

参数名类型必填示例特殊说明
idCardInputObject"110101199003072316"支持单元格引用或身份证号字符串
separatorInputObject"-"默认为 -,可自定义为 /.

使用案例

基础用法

问题描述:从身份证号中提取生日
公式演示

excel
=idc_Birthday("110101199003072316")

输出效果

text
1990-03-07

自定义分隔符

问题描述:提取生日并使用 / 作为分隔符
公式演示

excel
=idc_Birthday("110101199003072316", "/")

输出效果

text
1990/03/07

区域输入

问题描述:批量提取多个身份证号的生日
公式演示

excel
=idc_Birthday(A1:A5, ".")

输出效果(A1:A5分别为5个身份证号)

text
1990.03.07  
1985.11.23  
1978.09.15  
...(按行返回)

技术说明

身份证处理规则

  • 18位身份证:第7至14位为生日,格式为 YYYYMMDD
  • 15位身份证:第7至14位为生日,格式为 YYMMDD,默认年份为19XX
  • 无效身份证号处理:非字符串、非身份证格式、位数不符等,均返回错误信息

分隔符处理

  • 若未指定 separatorInput,默认使用 -
  • 支持任意字符作为分隔符,如 /.-

异常处理

错误场景返回值
非字符串输入(如数字、空值)错误: 参数必须为字符串
输入不是15位或18位错误: 身份证号码位数不正确
日期格式不合法错误: 无法解析出生日

扩展应用

结合文本函数使用

excel
=LEFT(idc_Birthday(A1),4)  // 提取出生年份

输出示例(A1为"110101199003072316")

text
1990

使用条件格式检测

excel
=ISNUMBER(FIND("1990", idc_Birthday(A1)))

说明:当身份证生日包含 "1990" 时返回 TRUE

注:本函数在WPS 2019+和Excel 365中测试通过