excel函数的运用,请解析步骤的意思
发布网友
发布时间:2022-04-30 14:28
我来回答
共3个回答
热心网友
时间:2022-06-23 03:33
这是身份证校验公式。
判断式1:AND(LEN(D3)<>15,LEN(D3)<>18)检测身份证号码是否不等于15位,同时不等于18位,是的话返回真值TRUE,否则返回FALSE。
(LEN(D3)=15)*19&MID(D3,7,6+(LEN(D3)=18)*2),提取身份证日期部分,当身份证为15位时,提取6位数字,前面添上19;18位时,提取8位数字。
1*TEXT(8位数字,"#-00-00"),将数字转为文本日期形式。再与1相乘,转为数值格式。
判断式2:ISERROR()检测提取的日期并转换为数值的过程是否出错,是的话返回真值TRUE,否则为FALSE。
OR(判断式1,判断式2),如果两个判断有一个是真值,返回真值,否则返回假值。
NOT对前面判断的逻辑值取反。即TRUE转为FALSE,FALSE转为TRUE。从而达到判断身份证是否为15或18位,日期是否出错。
热心网友
时间:2022-06-23 03:33
NOT,对参数值求反的函数,比如=NOT(FALSE)的结果是TRUE,=NOT(1+1=2)的结果是FALSE,=NOT(1=2)的结果是TRUE。TRUE的意思相当于对,FALSE的意思相当于错。
NOT的意思就是公式里参数的结果是错误的,返回对,反之返回错。
OR、AND是逻辑判断函数,OR相当于或者的意思,AND相当于并且的意思。就是说
OR函数内的参数,只要有一个是对的,函数的结果就返回对;AND函数内的参数,只要有一个是错的的,函数的结果就返回错,只有全部参数都对的条件下才能返回对。
LEN是计算一个单元格内字符数的函数,LEN(D3)<>15的意思是D3单元格字符数不等于15.
AND(LEN(D3)<>15,LEN(D3)<>18),意思是D3单元格字符数不等于15也不等于18.
LEN(D3)=15也是一个逻辑判断,就是计算D3的字符数是否=15,是就返回TRUE,否就返回FALSE,在公式运算中默认RUE为1,FALSE为0.
LEN(D3)=15)*19的意思就是D3如果是15位就等于1乘以19,否则等于0乘以19.
&是连接符,把两个字符连接到一起,比如=1&2,结果为12,="张"&"三",结果为张三。
MID(单元格,位置,数目)为提取单元格内字符的函数,位置是从第几个开始提取,数目是要提取几个。
MID(D3,7,6+(LEN(D3)=18)*2)就是从D3的身份证号的第七位开始(前6为地区代码,第七位开始位出生年月)提取6+(LEN(D3)=18)*2个字符(如果是18位就加1*2个,否则就加0*2个).
TEXT将数值转换为按指定数字格式表示的文本函数。
TEXT((LEN(D3)=15)*19&MID(D3,7,6+(LEN(D3)=18)*2),"#-00-00")的结果就是日期型的数字文本,如1936-02-21.为了把这一结果转化为数字又乘了个1,变为1*
TEXT((LEN(D3)=15)*19&MID(D3,7,6+(LEN(D3)=18)*2),"#-00-00")。
个人认为这一步是否必要,可以商榷。
ISERROR是检验参数是否为错误值的函数,就是检验上述计算出的身份证号的数字的公示结果是否存在,如果有结果就是错的,没有结果就是对的。
=NOT(OR(AND(LEN(D3)<>15,LEN(D3)<>18),ISERROR(1*TEXT((LEN(D3)=15)*19&MID(D3,7,6+(LEN(D3)=18)*2),"#-00-00"))))的意识就是两个参数都是对的返回错误,都是错的返回对。
连个参数就是OR(AND(LEN(D3)<>15,LEN(D3)<>18)算一个,ISERROR(1*TEXT((LEN(D3)=15)*19&MID(D3,7,6+(LEN(D3)=18)*2),"#-00-00")))算一个。
热心网友
时间:2022-06-23 03:34
这是身份证提取出生日期吧。只要会用就可以