Office中国论坛/Access中国论坛
标题:
从身份证中取生日(18.15位)
[打印本页]
作者:
wcjooo
时间:
2008-9-18 10:43
标题:
从身份证中取生日(18.15位)
=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)))
作者:
pureshadow
时间:
2008-9-18 11:31
=--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 编辑
]
作者:
za_moto
时间:
2008-9-26 23:33
能解答一下吗?
作者:
pureshadow
时间:
2008-9-27 15:06
标题:
身份证号里的数字/字符游戏
身份证号 位数 出生日期 性别
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)
这个函数不用详细解释都能看懂,它的精彩之处在于思路,尤其是第二种,算寄偶数又没有规定在几位数内……
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3