[url]http://school.cfan.com.cn/office/excel/2007-08-02/1186030179d90638.shtml[/url]
用Excel XP提取身份证中的日期数据
利用Excel里公式来提取身份证中的日期,将使复杂的手工工作变得轻松和快捷。现行的居民身份证的号码有两种:15位(旧)和18位(新)。其中15位号码中的第7-12位数据每2位数一组分别记录了出生年、月、日的信息,而18位号码中则由第7-14位数据记录,其中出生年份为4位。要达到转换的目的,就必须提取这段信息,在插入时间格式的符号后再组合成日期格式。
在Excel中打开需要编辑的档案文件,将身份证号码以升序的格式排序,在图1的对话框中选择第一项, Excel会将18位的号码排在15位号码后边,这样会使下面不同公式的复制变得更加方便。
为了编辑方便,将排序好的身份证号码复制到一新的工作簿中的A列中。(也可以在原档案中身份证右侧插入两列。)在新的工作簿中选中单元格B1,输入以下的公式:
“=CONCATENATE((LEFT(RIGHT(A1,9),2)),-(LEFT(RIGHT(A1,7),2)),-(LEFT(RIGHT(A1,5),2)))”,上式为15位身份证号码的公式,18位身份证号码的公式应为:=CONCATENATE((LEFT(RIGHT(A1,10),2)),-(LEFT(RIGHT(A1,8),2)),-(LEFT(RIGHT(A1,6),2))),式中的A1是引用的单元格,随着引用单元格的位置不同,输入时也应作对应的更改。
上述公式的含义是:将分别提取的年份(LEFT(RIGHT(A1,9),2)),(在提取A1的右边9位数中再提取左边两位数值。下面的月份、日期公式的原理相同)月份(LEFT(RIGHT(A1,7),2)),日期(LEFT(RIGHT(A1,5),2),并分别在月份、日期数据的前面加上日期的分隔符“-”号,组合成XX-XX-XX的日期格式。有关公式的详情可参考Excel的函数帮助。
接下来选中单元格B1,拖动填充柄向下填充公式,在拖动中,当左侧A列中的身份证号码到达18位的身份证号码时,公式应按上面的提示修改。复制填充结束后,由于B列中单元格是公式格式,所以应将其选中复制并选择性粘贴,以数值的格式粘贴到C列中。选中C列,打开错误追踪检查选项的按钮,选择第二项,Excel将自动在年份前添加“19”并完成所有的日期转换工作。将C列中提取的出生日期,复制并导入原档案文件中。特别注意的是要一一对应。工作结束!
以上的操作是在Excel Xp中进行的。而在Excel中操作时,由于Excel没有错误追踪检查的选项功能,复制到C列的数值,不能被转换成日期格式。相应15位号码的公式应修改如下:=CONCATENATE(19,(LEFT(RIGHT(A1,9),2)),-(LEFT(RIGHT(A1,7),2)),-(LEFT(RIGHT(A1,5),2))),18位号码的公式:=CONCATENATE((LEFT(RIGHT(A1,12),4)),-(LEFT(RIGHT(A1,8),2)),-(LEFT(RIGHT(A1,6),2))),上式15位身份证号码的公式中,在两位数的年份前添加了“19”,而18位身份证号码的年份本身是4位数,故直接提取。
另外,由于Excel在身份证号码排序中没有Excel XP方便,很难将15位和18位的号码分开排序,读者可以先插入一列,用公式:“ =RIGHT(A1,12)”,以先提取所有身份证右边的12位数据,并设置转换为数值后,再以此列排序,这样,以公元19系列的18位号码将会排在一块。