excel中能否用身份证号筛选出年龄大于18岁的人?

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:09:16
excel中能否用身份证号筛选出年龄大于18岁的人?
很多数据,只有姓名和身份证号.excel 中的.
谢谢指点!
18岁要求精确到月,日才行.谢谢!

把身份证号码自动生成生日:
假如身份证号数据在A1单元格,在B1单元格中编辑公式
=IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2),MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2))

计算年龄:
=datedif(B1,today(),"y")
然后再筛选大于18岁的.

回复:我这公式没精确到日吗?

假定原身份证数据在B列,第一行为表头,请在C2单元格输入公式:
=IF(DATE(IF(LEN(B2)=15,1900+MID(B2,7,2),MID(B2,7,4)),MID(B2,IF(LEN(B2)=15,9,11),2),MID(B2,IF(LEN(B2)=15,11,13),2))<=DATE(YEAR(TODAY())-18,MONTH(TODAY()),DAY(TODAY())),"是","")

将公式向下复制到相应行。
将全表按C列排序,所有C列含有“是”的行将集中在一起,这就是你要的结果。

身份证大多数是前六位表示所在地区,从第七位开始是出生年月。我也不知道一下子筛选有什么好办法。不过可以把它划分为两个子问题。所以可以这么解决:首先选中身份证号一栏,按照大小排列,这样以来同一地区的人就被排列在一起了。比如烟台的一身份证是37140119831025××××,前六位表示地区,第七位开始19831025是出生日期。对于这一地区的便可以用筛选小于371401198912319999的方法了。
嘿嘿,好像勉强可以算是解决了。哈哈哈!仅供参考。

=IF(MID(C5,7,4)<"1989","true","false") C5为身份证号码。1989=2007-18.小于1989的人大于18岁。