发布网友 发布时间:2022-04-21 19:00
共4个回答
热心网友 时间:2022-05-27 10:37
【身份证号判断性别的方法】
18位的看倒数第二位,奇男偶女;
15位的看倒数第一位,奇男偶女。
假如:身份证所在的列为c2
首先要判断该身份证的长度,在excel中使用len函数来获取len(c2)
如果是18位的就取第17位,即倒数第二位,excel中使用mid函数还获取指定位置开始,指定长度的字符串,如果是15位的就去最后一位也就是第15位
=if(len(c2)=15,mid(c2,15,1),mid(c2,17,1))
获取到这个数后,再判断该数是奇数还是偶数就可以得出性别了,excel中使用mod函数实现
=if(mod(if(len(c2)=15,mid(c2,15,1),mid(c2,17,1)),2)=1,"男","女")
获取年龄的函数如下:
=datedif(text((len(c2)=15)*19&mid(c2,7,6+(len(c2)=18)*2),"00-00-00"),today(),"y"
)
在excel中根据身份证号码自动生成出生生日期和性别
根据身份证号码自动生成出生生日期
方法一:
15位身份证号:410881790605552
输出出生日期1979/06/05
=concatenate("19",mid(e2,7,2),"/",mid(e2,9,2),"/",mid(e2,11,2))
公式解释:
a.mid(e2,7,2)为在身份证号码中获取表示年份的数字的字符串
b.
mid(e2,9,2)
为在身份证号码中获取表示月份的数字的字符串
c.
mid(e2,11,2)
为在身份证号码中获取表示日期的数字的字符串
d.concatenate("19",mid(e2,7,2),"/",mid(e2,9,2),"/",mid(e2,11,2))目的就是将多个字符串合并在一起显示。
18位身份证号:410881197906055521
输出出生日期1979/06/05
=concatenate(mid(e2,7,4),"/",mid(e2,11,2),"/",mid(e2,13,2))
方法二:
15位身份证号:410881790605552
出生日期790605
=if(len(e3)=15,mid(e3,7,6),mid(e3,9,6))
18位身份证号:410881197906055521
出生日期790605
=if(len(e3)=15,mid(e3,7,6),mid(e3,9,6))
公式解释:
len(e2)=15:检查e2单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位。
mid(e2,7,6):从e2单元格中字符串的第7位开始提取6位数字,本例中表示提取15位身份证号码的第7、8、9、10、11、12位数字。
mid(e2,9,6):从c2单元格中字符串的第9位开始提取6位数字,本例中表示提取18位身份证号码的第9、10、11、12、13、14位数字。
=if(len(e2)=15,mid(e2,7,6),mid(e2,9,6)):if是一个逻辑判断函数,表示如果额e2单元格是15位,则提取第7位开始的6位数字,如果不是15位则提取自第9位开始的6位数字。
根据身份证号码自动生成性别:
方法一:
在c列输入身份证号,在b列填写性别,可以在b2单元格中输入公式“=if(mod(if(len(c2)=15,mid(c2,15,1),mid(c2,17,1)),2)=1,"男","女")”,其中:
len(c2)=15:检查身份证号码的长度是否是15位。
mid(c2,15,1):如果身份证号码的长度是15位,那么提取第15位的数字。
mid(c2,17,1):如果身份证号码的长度不是15位,即18位身份证号码,那么应该提取第17位的数字。
mod(if(len(c2)=15,mid(c2,15,1),mid(c2,17,1)),2):用于得到给出数字除以指定数字后的余数,本例表示对提出来的数值除以2以后所得到的余数。
if(mod(if(len(c2)=15,mid(c2,15,1),mid(c2,17,1)),2)=1,"男","女"):如果除以2以后的余数是1,那么b2单元格显示为“男”,否则显示为“女”。
15位身份证,看最后一位,奇男偶女;18位的,看第17位数,也是奇男偶女。
方法二:
如果你是想在excel表格中,从输入的身份证号码内让系统自动提取性别,可以输入以下公式:
=if(len(c2)=15,if(mod(mid(c2,15,1),2)=1,"男","女"),if(mod(mid(c2,17,1),2)=1,"男","女"))
公式内的“c2”代表的是输入身份证号码的单元格。
热心网友 时间:2022-05-27 10:37
=MID(E10,7,6+(LEN(E10)=18)*2)——适应于第一代(15位)和第二代(18位)身份证的。
第二代身份证是18位,如果用字符数函数LEN()判断=18,是对的,返回正确值1,1*2=2,6+2=8,用提取中间字符串MID()从第7位起共8个字符串,即出生日期(如19801231)。
第一代身份证是15位,如果用字符数函数LEN()判断不等于18,=18是错的,返回错误值0,0*2=0,6+0=6,即提取第7位起共6个字符串,即出生日期(如801231)。
热心网友 时间:2022-05-27 10:38
这个函数不是最后乘以2,而LEN(E10)=18)*2
含义就是如果身份证号码为18位,也就是条件为真,那么TRUE*2=2这样就提取8为数字作为生日信息,
如果不是18位的身份证,条件就是假,FLASE*2=0,这样就提取6为数字作为生日信息。追问就是说,如果判断(LEN(E10)=18)为true,则在6的基础上加上2位后续数字,最终输出YYYYMMDD的出生日期?
追答对的,就是在6的基础上加上2位后续数字
是类似这样的日期19840213,
如果是15位的身份证就是840213的日期,这样看着很不好看,可以加上修改一下.
=IF(len(e10)=15,"19"&MID(E10,7,6+(LEN(E10)=18)*2),MID(E10,7,6+(LEN(E10)=18)*2))
热心网友 时间:2022-05-27 10:39
LEN(E10)=18是用来判断E10单元格里的身份证号是不是18位,
如果身份证号不是18位,那么LEN(E10)=18这个表达式的值就是0(假,FALSE)乘以2还是0,那么E10里的身份证号从第7位开始取6+0位就可以了;
如果身份证号 是18位,那么LEN(E10)=18这个表达式的值就是1(真 TRUE )乘以 2就是2,那么E10里的身份证号从第7位开始取6+2位就可以了。