直播中
本例涉及到的excel函数如下:
1、date(year,month,day)
2、if(logical,value_if_true,value_if_false)
3、len(text)
4、mid(text,start_num,num_chars)
5、mod(number,divisor)
在这里,我们假定身份证号码保存在c列(从c2单元格开始)中,性别和出生年、月、日分别保存在d列和e列中。
一、性别的判断
选中d2单元格,输入公式:
=if(mod(if(len(c2)=15,mid(c2,15,1),mid(c2,17,1)),2)=0,"女","男")
或
=if(mod(if(len(c7)=15,mid(c7,15,1),mid(c7,17,1)),2)=1,"男","女"),
输入完成后,按下“enter”键进行确认,第1位持证人的性别则自动显示在d2单元格中(如图1)。
上述第一个公式的含义分三层来理解:
①如果身份证号码是15位(len(c2)=15),则取其15位数字(mid(c2,15,1)),否则取其17位数字(mid(c2,17,1))。
②然后求取出来的数值除2后的余数(mod(if(len(c2)=15,mid(c2,15,1),mid(c2,17,1)),2))。
③如果(if)余数为“0”(mod(if(len(c2)=15,mid(c2,15,1),mid(c2,17,1)),2)=0),则显示“女”,否则显示“男”。
再次选中d2单元格,用“填充柄”将上述公式复制到d列下面的单元格中,即可显示出其他持证人的性别。
注意:如果将上述公式修改为:=if(if(len(c2)=15,mid(c2,15,1),if(len(c2)=18,mid(c2,17,1),""))="","号码有错",if(mod(if(len(c2)=15,mid(c2,15,1),if(len(c2)=18,mid(c2,17,1),"")),2)=1,"男","女")),当输入的号码不是15位或18位,系统提示“号码有错”(参见图1),则效果更佳。
注意:修改后的公式与上面的公式含义相似。
[page]二、显示出生年、月、日
选中e2单元格,输入公式:=if(len(c2)=15,date(mid(c2,7,2),mid(c2,9,2),mid(c2,11,2)),date(mid(c2,7,4),mid(c2,11,2),mid(c2,13,2))),输入完成后,按下“enter”键进行确认,第1位持证人的出生年、月、日则自动显示在e2单元格中(参见图1)。
上述公式的含义如下:
如果(if)身份证号码是15位(len(c2)=15),则取其7至8位(mid(c2,7,2))、9至10位(mid(c2,9,2))、11至12位(mid(c2,11,2)),并以日期的格式显示出来(date(mid(c2,7,2),mid(c2,9,2),mid(c2,11,2)));
反之,取其7至10位(mid(c2,7,4))、11至12位(mid(c2,11,2))、13至14位(mid(c2,13,2)),再以日期的格式显示出来(date(mid(c2,7,4),mid(c2,11,2),mid(c2,13,2)))。
再次选中e2单元格,用“填充柄”将上述公式复制到e列下面的单元格中,即可显示出其他持证人的出生年、月、日。
选中e列中含有日期的单元格区域,执行“格式→单元格”命令,打开“单元格格式”对话框(如图2),切换到“格式”标签中(通常是默认的标签),先在“格式类别”下面选中“日期”选项,然后在“示例”下面选中一种适合国人习惯的日期样式,确定返回。
注意:①如果不设置单元格格式,也是完全可以的,只不过显示出来的日期样式是“1976-12-17”。
②如果将上述公式修改为:=if(len(c2)=15,date(mid(c2,7,2),mid(c2,9,2),mid(c2,11,2)),if(len(c2)=18,date(mid(c2,7,4),mid(c2,11,2),mid(c2,13,2)),"号码有错")),当输入的号码不是15位或18位,系统提示“号码有错”(参见图1),则效果更佳。