这两个公式的区别在哪里了.

mycc300 2005-03-07 09:07:07
有这样两个公式,是用来列出身份证中的出生年月日的:我不清楚他们的区别在哪里,第二个公式如果不设置格式,显现的数据就不知是什么,为什么会是这样了????这个"*1"是作什么用的???

1\如果只取数据,但身份证又有15位与18位的区别,所以公式如下
B2的公式 =TEXT(MID(B1,7,6+(LEN(B1)=18)*2),"#-00-00") 以下的下拉

2\B2的公式为=TEXT(MID(B1,7,6+(LEN(B1)=18)*2),"#-00-00")*1 (这里要将这些单元格的"单元格格式"-"数字"下选"日期",选择这种年月日的格式)下拉
...全文
135 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yigepure 2005-03-20
  • 打赏
  • 举报
回复
yigepure请教你在http://community.csdn.net/Expert/topic/3831/3831970.xml?temp=.447201中回复的关于提取身份证号码(15位或18位)中出生年月日的格式,我改成=TEXT(IF(LEN(F1)=15,MID(F1,7,6),MID(F1,9,6)),"0#-00-00"),加条件判断15位还是18位,如果是18位身份证号码出生年月日为20040101(假设),格式#-00-00就达不到想要的结果了。如果要将格式设置为1985-01-01(8位),怎样解决出现二十一世纪出生人的身份证号码的问题(你可试试2004年,2115年等年份)。
------------------------------------------------
给你个完全版的公式
=TEXT((LEN(A1)=15)*19&MID(A1,7,(LEN(A1)=18)*2+6),"#-00-00")
yigepure 2005-03-12
  • 打赏
  • 举报
回复
第一个出来的是文本
第二个出来的是数字。*1,+0,--,都可以.
蓝帆·雨轩 2005-03-10
  • 打赏
  • 举报
回复
不好意思,jin0706(small(努力&开心everyday,有事PM我^_^)),您没有看清楚,这里是公式,不是VBA,不过您的解释是非常正确的。呵呵。

其实这里就象jin0706(small(努力&开心everyday,有事PM我^_^))说的那样,这里是把日期型数据通过与数字进行算术运算,从而把日期转化成了其对应的数字[也就是其序列号]

lilei 2005-03-09
  • 打赏
  • 举报
回复
楼上的高,学了一手
jin0706 2005-03-08
  • 打赏
  • 举报
回复
因为在vba中,是可以进行混合类型变量的运算的,如果表达式中有数字存在,那么运算结果就是数字了
*1 就是巧妙的把日期变成了数字

mycc300 2005-03-08
  • 打赏
  • 举报
回复
不好意思我还是不太懂,为什么*1的公式就是序列号?????能解释一下吗!
谢谢了!!!!!!1
蓝帆·雨轩 2005-03-08
  • 打赏
  • 举报
回复
第一个公式是直接设置成了日期格式,所以可以直接显示出日期。
第二个公式由于*1,结果显示出来的是该日期的序列号[数字],所以需要设置为日期格式

6,210

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office应用
社区管理员
  • Microsoft Office应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧