ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 函数与公式 > 下面从身份证提取出生日期的公式中为什么要-500?

下面从身份证提取出生日期的公式中为什么要-500?

作者:绿色风 分类: 时间:2022-08-17 浏览:142
楼主
wjc2090742
Q:从身份证提取出生日期的公式=--TEXT(MID(A2,7,11)-500,"0-00-00,")中,如何理解-500呢?
A:-500在这个公式中是为了应对身份证中出生日期后面的那位数字不确定的情况。
根据身份证来判断出生日期,下面是其中的一种算法:
  1. =--TEXT(MID(A2,7,11)-500,"0-00-00,")


先分析公式:
无论是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楼
水吉果果
学习

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap