楼主 wjc2090742 |
Q:从身份证提取出生日期的公式=--TEXT(MID(A2,7,11)-500,"0-00-00,")中,如何理解-500呢? A:-500在这个公式中是为了应对身份证中出生日期后面的那位数字不确定的情况。 根据身份证来判断出生日期,下面是其中的一种算法:
先分析公式: 无论是15位还是18位的身份证,mid(A2,7,11)提取到的,都是出生日期加上3位数的数字字符串。15位的是yymmddNNN,18位的是yyyymmddNNN,N代表数字。 ''0-00-00,"中的“,”是千分位符,本公式中起着将多提取的3个数字舍去的作用,由于“,”本身自带着四舍五入的作用,如果没有-500,如yymmdd602这样的情况就会导致出生日期判断错误了。 因为有“,”的存在,-500也相当于-0.5,套入实例来看。 355555198404276024,经过mid和-500的运算,相当于19840427.1,“,”运算的结果是19840427。 355555198404271001,经过运算后,相当于19840426.6,“,”运算的结果,四舍五入后,依然是正确的19840427。 大理版主在另外一个社区做了解释,我的理解大体是学习来的,当然,比较浅薄和基础。 但是当时有人问我为什么是-500,而不是别的数。我觉得这点还是要从“,”千分位符自带的四舍五入的作用来理解,因为5刚好是分界线,-0.5之后,要么小于0.5,舍去;要么大于0.5,但是前面退1,进上去。 也可以做这样一个小实验来理解,写一个小数,如0.597412368,然后点击功能区上面的“减少小数位数”和“增加小数位数”按钮,可以发现excel在显示数字的时候,悄无声息的先做了四舍五入。 |
2楼 larkzh |
这个公式不需要判断就15位18位通用,妙! |
3楼 水吉果果 |
学习 |