设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3811|回复: 4
打印 上一主题 下一主题

从身份证中取生日(18.15位)

[复制链接]
跳转到指定楼层
1#
发表于 2008-9-18 10:43:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
=IF(LEN(H3)=15,CONCATENATE("19",MID(H3,7,2),MID(H3,9,2),MID(H3,11,2)),CONCATENATE(MID(H3,7,4),MID(H3,11,2),MID(H3,13,2)))
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2008-9-18 11:31:09 | 只看该作者
=--TEXT((MID(C4,7,6+(LEN(C4)=18)*2)),"#-00-00")
=--text(mid(c4,7,len(c4)/2-1),"#-00-00")

[ 本帖最后由 pureshadow 于 2008-9-27 15:03 编辑 ]
3#
发表于 2008-9-26 23:33:14 | 只看该作者
能解答一下吗?

点击这里给我发消息

4#
发表于 2008-9-27 15:06:31 | 只看该作者

身份证号里的数字/字符游戏

身份证号                位数   出生日期    性别
123456197706054321     18          MID(,7,8)       MID(,17,1)
123456571005433             15          MID(,7,6)       MID(,15,1)

出生日期:
  我们需要这样一个公式:18=8 15=6
方法一:IF判断
  IF(LEN()=18,8,6)
方法二:将TRUE/FALSE的结果参与到计算中
  (LEN()=18)*2+6
方法三:数字游戏
  LEN()/2-1:18位结果为8,15位结果为6.5
这一结果与我们需要的18=8 15=6貌似有差点,但在很多函数中(MID是其中之一),小数会自动被INT。
  同理,如果我们只需要“年”,就可以用:MID(,LEN()/2,2)。
  同理,如果我们只需要“月-日”,就可以用:MID(,LEN()/2+2,4)。

性别:
我们需要这样一个公式:18=17 15=15
方法一:IF判断
  IF(LEN()=18,17,15)
方法二:将TRUE/FALSE的结果参与到计算中
  (LEN()=18)*2+15
方法三:字符游戏
  RIGHT(LEFT(,17))
    MID(,15,3)
这个函数不用详细解释都能看懂,它的精彩之处在于思路,尤其是第二种,算寄偶数又没有规定在几位数内……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-14 10:45 , Processed in 0.098192 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表