一、先给实例,不用搞懂原理
假设:A1栏内有身份证号码,要在B1栏中自动生成年月日,那么就在B1栏中输入以下公式。
(由于A1是假定的,可以任意替换,所以在下面的公式中用红醒目标出)
公式如下:
=IF(LEN(A1)=18,MID(A1,7,4)&"年"&MID(A1,11,2)&"月"&MID(A1,13,2)&"日",IF(LEN(A1)=15,MID(A1,7,2)&"年"&MID(A1,9,2)&"月"&MID(A1,11,2)&"日","无效身份证号码"))
显示的效果如下:
XXXX年XX月XX日,如1984年04月28日
二、有兴趣就拓展一下
根据基本情况,在不需要理解公式含义的情况下,就可以派生出其他几种不同的显示格式出来。
三、还有兴趣就总结一下
身份证号码为15位的,第七、八位为出生年,第九、十位为出生月,第十一、十二位为出生日;身份证号码为18位的,第七、八、九、十位为出生年,第十一、十二位为出生月,第十三、十四位为出生日。
以上运用到的函数
1. Len函数
(1)函数作用:用来对单元格内容的长度进行测量。
(2)使用语法:
LEN(text)
说明:text 是要查其长度的文本。空格将作为字符进行计数。
2. MID函数
(1)函数作用:根据用户自行指定的开始位置和字符长度对某单元格进行字符提取。
(2)使用语法:
MID(text,start_num,num_chars)
说明:
Text 是包含要提取字符的文本字符串,可以直接输入含有目标文字的单元格名称。
Start_num 是文本中要提取的第一个字符的位置。文本中第一个字符的 start_num 为 1,以此类推。
Num_chars 指定希望 MID 从文本中返回(提取)字符的个数。
注意:
如果 start_num 大于文本长度,则 MID 返回空文本 ()。
如果 start_num 小于文本长度,但 start_num 加上 num_chars 超过了文本的长度,则 MID 只返回至多直到文本末尾的字符。
如果 start_num 小于 1,则 MID 返回错误值 #VALUE!。
如果 num_chars 是负数,则 MID 返回错误值 #VALUE!。
3. IF函数
(1)函数作用:根据指定的条件来计算结果为 TRUE 或 FALSEexcel自动生成排名,返回不同的结果。可以使用 IF 对数值和公式执行条件检测。
(2)使用语法:
IF(logical_test,value_if_true,value_if_false)
说明:
Logical_test 表示计算结果为 TRUE 或 FALSE 的任意值或表达式。
Value_if_true 是 logical_test 为 TRUE 时返回的值。
Value_if_false 是 logical_test 为 FALSE 时返回的值。
身份证号码为15位的,最后一位号码能决定性别,奇数为男性,偶数为女性;身份证号码为18位的,倒数第二位号码能决定性别,奇数为男性,偶数为女性。
1、根据身份证号码求性别:
=IF(LEN(A1)=15,IF(MOD(VALUE(RIGHT(A1,1)),2)=0,"女","男"),IF(LEN(A1)=18,IF(MOD(VALUE(MID(A1,17,1)),2)=0,"女","男"),"身份证错"))
3、根据身份证号码求年龄:
=IF(LEN(A1)=15,year(now())-1900-VALUE(MID(A1,7,2)),if(LEN(A1)=18,year(now())-VALUE(MID(A1,7,4)),"身份证错"))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论