idc_Birthday函数
函数名:sfz_生日 / idc_Birthday
函数功能
从15位或18位身份证号码中提取出生日信息,并返回格式为 YYYY-MM-DD 的字符串。支持自定义日期分隔符,如 /、. 等。
参数规范
| 参数名 | 类型 | 必填 | 示例 | 特殊说明 |
|---|---|---|---|---|
idCardInput | Object | 是 | "110101199003072316" | 支持单元格引用或身份证号字符串 |
separatorInput | Object | 否 | "-" | 默认为 -,可自定义为 /、. 等 |
使用案例
基础用法
问题描述:从身份证号中提取生日
公式演示:
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中测试通过