=TEXT((LEN(B149)=15)*19&MID(B149,7,6+2*(LEN(B149)=18)),"#-00-00")

这个是从身份证上提取出生年月日并且直接变成文本格式,我想求大神帮我讲一下解释一下公式的构造比如15,19等等都是什么意思代表什么,谢谢。... 这个是从身份证上提取出生年月日并且直接变成文本格式,我想求大神帮我讲一下解释一下公式的构造比如15,19等等都是什么意思代表什么,谢谢。 展开
 我来答
Stcxj
高粉答主

2015-05-20 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:7.1万
采纳率:67%
帮助的人:1.9亿
展开全部
解释公式很费事的。
=TEXT((LEN(B149)=15)*19&MID(B149,7,6+2*(LEN(B149)=18)),"#-00-00")
1、LEN()——字符串个数函数
(LEN(B149)=15)*19:当LEN(B149)=15时(第一代身份证)为TRUE,返回1,1*19=19;否则为FALSE,返回0,0*19=0,也就是第一代身份证的加“19”
2*(LEN(B149)=18):同理,第二代身份证=2*1=2,否则2*0=0
2、MD()——提取中间字符串函数。语法:MID(引用,左起第几位,共几位)
MID(B149,7,6+2*(LEN(B149)=18)):提取B149左起第7位,共6个字符串(第二代身份证的+2共8个字符串)。
3、TEXT()——转换文本格式函数
TEXT((LEN(B149)=15)*19&MID(B149,7,6+2*(LEN(B149)=18)),"#-00-00"):按引用内容转换成"#-00-00"格式,若引用为19780519,则转换成1978-05-19。

话外,公式还可以简化些:
=TEXT(MID(B149,7,LEN(B149)*2/3-4),"#-00-00")

=TEXT(IF(LEN(B149)=15,"19"&MID(B149,7,6),MID(B149,7,8)),"#-00-00")
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式