excel函数的运用,请解析步骤的意思

默认分类 未结 1 531
∮狂♀齐⌒
∮狂♀齐⌒ 2023-03-21 21:29
1条回答
  • 2023-03-21 22:12

    这是身份证校验公式。判断式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位,日期是否出错。

    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")))算一个。

    这是身份证提取出生日期吧。只要会用就可以

    0 讨论(0)
提交回复