比如今天是2012年10月28日,身份证号放在excel中的A2,在excel中如何使用公式根据身份证号筛选出60岁以上的人(不用分男女,身份证都是18位的)?请详细解释公式的含义。如果今天是2012年10月29日呢,公式又是怎样?因为工作原因,我的每天都对60岁以上的人进行统计,而且我每次统计都涉及15万人左右。还有没有更简单而省力办法?!恳请高手帮忙!!谢谢!!
1、首先在excel表格中输入需要筛选的身份证号码。
2、然后在B1单元格中输入提取年龄的计算公式:=DATEDIF(TEXT(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00"),"e-mm-dd"),TODAY(),"y")。
3、点击回车,即可将函数公式生成计算结果,可以看到对应身份证号码的年龄为“64”。
4、向下拖动公式批量填充公式,即可在单元格中得到年龄数据。
5、选中年龄数据列并点击工具栏中的“条件格式”,选择“突出显示单元格规则”中的“大于”选项。
6、然后在弹出的“大于”对话框中输入数字“60”,点击确定。
7、即可将选中的年龄单元格中大于“60”的单元格标红显示。
我想要的统计表就是所有大于等于60的人的姓名、身份证号码这两样信息。
追答你的这两列数据在表的哪列?你的数据表中有什么内容,都在哪些列中?或直接发文件到[email protected]
你的公式,B2里显示#NUM!。
追答一直想修正,但推荐了答案不给修改.试试下面这个公式
=datedif(text(mid(a2,7,8),"0-00-00"),today(),"Y")
45233119511210032163452331195210293333634523311952102833337945233119521030333373
你公式计算结果好像有误。我电脑系统时间现在是2012年10月29日,452331195210293333应该是60才对呀。我想要确切的年龄,比如452331195210303333不能显示60,因为他还没有到60,还差一天。
差一天, 是显示59岁
本回答被提问者和网友采纳你公式很好。还问你一个问题:如果我找2011年7月1日以前满60岁的人呢,公式怎么改?谢谢您。
追答公式改为
=IF(DATEDIF(--REPLACE(REPLACE(MID(B2,7,8),7,,"-"),5,,"-"),"2011-7-1","Y")>=60,"60岁老人","")
fan4di先生,很感谢您回答我的问题,您让我在工作效率更加快捷,领导都夸我呢!太谢谢您了!现在我又碰到一个难题,还请您不吝赐教。我的Excel文档里想找出2011年7月2日到2013年3月18日所有满60岁的人员,还是向上面公式一样有"60岁老人"这样标记。这个公式=IF(DATEDIF(--REPLACE(REPLACE(MID(B2,7,8),7,,"-"),5,,"-"),"2011-7-1","Y")>=60,"60岁老人","")怎么改呢?,小弟在此先谢了!!
追答公式修改为
=IF(OR(DATEDIF(--REPLACE(REPLACE(MID(B2,7,8),7,,"-"),5,,"-"),{"2011-7-1","2013-3-18"},"Y")>=60),"60岁老人","")
fan4di老师,我想要2011年7月2日到2013年3月18日所有满60岁的人员(就这个时间段满60岁的),2011年7月1日以前满60岁的不要。您的上面公式2011年7月1日以前满60岁的也跟着出来了。麻烦您再帮我改改。谢谢您。