Excel按身份证号筛选年龄段的方法
表格里只有身份证号、没有年龄列时,如何用出生日期算出周岁,再按60周岁以上或某个年龄区间筛选。涵盖18位与15位号码、参考日期设置和结果核对。
很多单位的名单、报名表或社保台账里只有身份证号,没有年龄列。要统计“60 周岁以上人员”或“35 岁以下员工”,就得先从号码里算出年龄,再做筛选。这类需求常见于人事、社区登记和培训报名,表格越长,手工逐个推算越容易出错。
这篇文章讲的是 Excel 里按身份证号筛选年龄段的完整流程:从号码中取出出生日期,用公式算出周岁,再用筛选功能得到目标人群。它与“只提取性别”或“只提取出生日期”不同,重点在于把年龄算准,并解决筛选时的边界和格式问题。读完后,你可以在自己的表格里直接套用这些公式。
怎么用身份证号筛选年龄段?一句话结论
直接回答: 先用公式从身份证号中取出出生日期,再用 DATEDIF 函数按一个固定参考日期算出周岁,最后对年龄列做数字筛选。
| 你的情况 | 推荐做法 | 原因 |
|---|---|---|
| 18 位身份证号,统计 60 周岁以上 | 提取出生日期,算周岁,数字筛选“大于或等于 60” | 18 位号码第 7 到 14 位即出生日期,公式直接 |
| 表格里混有 15 位老号码 | 用 IF 判断位数,15 位按 1900 年代拆分 | 15 位号码只有两位出生年份,需单独处理 |
| 要筛选某个区间,如 18 到 35 岁 | 数字筛选“介于 18 与 35” | 区间两端都包含,适合招聘、入学等场景 |
| 需要反复核对或分享结果 | 增加“是否符合”辅助列 | 每一行的判断结果一目了然,方便别人复查 |
| 统计要以某个截止日期为准 | 单独设一个参考日期单元格 | 周岁随时间变化,固定日期才能复现结果 |
开始之前:先确认这几点
1. 确认号码是 18 位还是 15 位。 现行身份证是 18 位,出生日期位于第 7 到 14 位,格式为 YYYYMMDD。1999 年以前签发的老号码多为 15 位,出生日期位于第 7 到 12 位,只有两位年份。两种号码的拆分方式不同,混在一起处理时必须分开判断。
2. 确定“按哪一天算年龄”。 周岁是按出生日期到某一天计算的,统计报告通常要写明截止日期。如果直接用 TODAY(),明天打开表格结果就可能变化。建议在表格里空出一个单元格,填入你要统计的日期,所有公式都引用它。
3. 先把身份证号列设为文本。 Excel 会把超过 15 位的数字当作数值处理,超出的部分显示为 0,末位还可能被改掉,之后再拆分出生日期就会出错。稳妥的做法是在粘贴前把整列设为文本格式,或在输入前先输入一个单引号。
4. 确认是否有空行、缺失号码或格式不统一的记录。 公式遇到空单元格或位数不对的号码会报错。先筛出长度不是 15 或 18 的记录,单独检查,避免它们拉低统计结果。
5. 做好个人信息保护。 身份证号属于敏感个人信息。统计只需要年龄时,可以在另存的副本中删除号码列,或只保留年龄结果。不要把含完整号码的表格通过聊天群或邮件随意转发。
在 Excel 里按身份证号筛选 60 周岁以上的步骤
- 在表格上方留出参考日期。 例如在 F1 输入你要统计的截止日期,并在 E1 写上“参考日期”,方便之后检查。
- 在 C2 单元格提取出生日期。 假设身份证号在 B2,输入公式:
=DATE(--MID(B2,7,4),--MID(B2,11,2),--MID(B2,13,2))。这条公式适用于 18 位号码,MID 用于截取指定位置的字符,“--”把文本转为数字。 - 兼容 15 位号码。 如果表格里可能有老号码,把 C2 改为:
=IF(LEN(B2)=15,DATE(1900+--MID(B2,7,2),--MID(B2,9,2),--MID(B2,11,2)),DATE(--MID(B2,7,4),--MID(B2,11,2),--MID(B2,13,2)))。15 位号码默认按 1900 年代理解,这一假设需要在结果中说明。 - 算出周岁。 在 D2 输入:
=DATEDIF(C2,$F$1,"y")。"y"表示按整年计算,结果就是截至参考日期的周岁。向下填充到所有行。 - 对年龄列做筛选。 选中表头并启用筛选功能,点击年龄列的下拉箭头,在数字筛选中选择大于或等于类选项,输入 60。需要区间时,选择介于类选项并分别填入两端数值。
- 增加判断列(可选)。 在 E2 输入:
=IF(D2>=60,"是","否"),之后可以直接按“是”筛选,结果更容易复查。 - 复制筛选结果。 筛选状态下选中可见行复制到新工作表,只保留需要的列,原表保持完整。
做完后逐项核对
| 检查项 | 怎么看 | 有问题怎么办 |
|---|---|---|
| 出生日期是否正确 | 抽查 3 到 5 行,对照身份证号中间 8 位 | 如果日期错位,检查 MID 的起始位置和位数 |
| 参考日期是否正确 | 看 F1 单元格的日期是否为你要统计的截止日 | 修改后公式会自动重算,无需逐行修改 |
| 周岁边界是否合理 | 找出生日期恰好是参考日期前后的记录,看年龄是否少算或多算一岁 | 确认 DATEDIF 的第三个参数为"y",而不是按天数计算 |
| 是否有报错单元格 | 用筛选查看是否出现#VALUE!或#NUM! | 通常是号码位数不对或含有空格,清理后重新填充 |
| 15 位号码结果 | 单独筛选 15 位记录,看年龄是否合理 | 若老号码出生年份明显偏差,改为人工核对原始档案 |
| 号码是否被改动 | 查看身份证号末位是否为 X 或数字,有无变成 0 | 若已被改动,需从原始文件重新导入,不能靠公式修复 |
核对完成后,记得保存一份带参考日期说明的版本,以便日后有人问“这个年龄是按哪天算的”时能够回答。
❓ 常见问题(FAQ)
1. 用 TODAY()代替参考日期可以吗?
可以,但结果会随着打开的日期变化。如果只是临时查看,用 TODAY()没有问题;如果要用于报表、名单或存档,建议固定一个日期,写明统计口径。
2. 为什么我输入的身份证号变成了科学计数法?
Excel 把超过 15 位的数字当成数值显示。解决办法是在输入前把单元格设为文本,或在号码前加单引号。已经变形的数据无法通过公式恢复,需要重新导入原始号码。
3. 60 周岁以上是“大于 60”还是“大于或等于 60”?
按周岁计算,满 60 周岁的人应包含在内,因此应选“大于或等于 60”。具体口径以你所在单位或机构的规定为准。
4. 公式算出的结果和身份证上的年龄对不上怎么办?
先确认参考日期是否正确,再检查出生日期列是否拆分无误。周岁是按出生日期到参考日期的整年数计算的,如果两者仍有差异,应以官方核验或原始档案为准,不要只依赖表格结果。
📝 总结
按身份证号筛选年龄段的关键,是先从第 7 到 14 位拆出出生日期,再用固定的参考日期算出周岁,最后用数字筛选得到目标人群。表格里要特别注意号码格式和 15 位老号码,统计完成后也要妥善保护个人信息。


