科比投篮包的球星:Excel高手进

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 09:07:40
现在有一堆身份证,有15位和18位的.如何用excel把他们按照出生时间的大小排列出来.急用.

=IF(AND(LEN(B3)<>15,LEN(B3)<>18,B3<>""),"误",IF(LEN(B3)=0,"",IF(ISERROR(1*(TEXT(MID(B3,7,6+(LEN(B3)=18)*2),"#-00-00"))),"误",IF(OR((1*(TEXT(MID(B3,7,6+(LEN(B3)=18)*2),"#-00-00")))<VALUE("1905-01-01"),(1*(TEXT(MID(B3,7,6+(LEN(B3)=18)*2),"#-00-00")))>TODAY()),"误",VALUE(TEXT(MID(B3,7,6+(LEN(B3)=18)*2),"#年00月00日"))))))
先把身份证的生日用这个公式提取出来. 这个公式是比较复杂不过包括判断身份证的有效性了,可以以后留着用.哈哈
B3为身份证
然后在此列按日期排序

1.把15位的年用19或20填充,末尾加0,变成18位
2.把生日前的6位分别放在后部
3.按数字小大排列
4.2.的逆过程,恢复
5.1.的逆过程,恢复
现在有一堆身份证,有15位和18位的.如何用excel把他们按照出生时间的大小排列出来了

提取出生日来
使用公式(假设A列为身份证号码)
=if(len(A1)=18,mid(A1,7,8),"19" & mid(A1,7,6))

然后按生日对两列排序就行了

先选中你所要排列的,然后再按数据里的排序。