excel怎么把出生年月替换成随机的

来源:百度知道 编辑:UC知道 时间:2024/05/31 09:50:55
13280119890101038X
132801198901010400
132801198901010427
132801198901010443
13280119890101046X
132801198901010486
132801198901010507
132801198901010523
......有好多身份证号,但生日都是一样的,怎么把它们弄成随机的。不想一个一个改,1000多个吧!!
谢谢大家,我只想改生日,年份不用改,请问怎么弄啊!! 我试了一下1楼的方法,出生日期是改过来了,但后面的数都是一样的了,怎么办啊??

如果楼主中的身份证含有15位的,公式为:

=REPLACE(A1,IF(LEN(A1)=15,9,11),4,TEXT(INT(RAND()*("12-31"-"1-1")),"MMDD"))

如果都是18位的,那么公式简化一点
=REPLACE(A11,11,4,TEXT(INT(RAND()*("12-31"-"1-1")),"MMDD"))

以上公式只改变了月份和天,希望满足楼主的需要

假设你原来的身份证号在A列
B1输入公式
=LEFT(A1,6)&TEXT(INT(RAND()*(33238-14611))+14611,"YYYYMMDD")&RIGHT(A1,4)
B1公式向下复制
本公式随机产生的出生日期的范围是 1940-1-1 到1990-12-31 你可以根据需要适当加以变化
如果对日期的序列数表达方式感到困惑,可以将公式改成:
=LEFT(A1,6)&TEXT(INT(RAND()*("1990-12-31"-"1940-1-1"))+"1940-1-1","YYYYMMDD")&RIGHT(A1,4)
这样应该好理解一些

一楼公式的思路非常不错,只是有点点错误,只能针对全部是数字,身份证中如果有字母就必须是小写,否则出现错误。不过可以把含字母的号过滤出来,用=LEFT(A1,6)&TEXT(INT(RAND()*("1990-12-31"-"1940-1-1"))+"1940-1-1","YYYYMMDD")&RIGHT(A1,5),全部是数字的就可以用=LEFT(A1,6)&TEXT(INT(RAND()*("1990-12-31"-"1940-1-1"))+"1940-1-1","YYYYMMDD&q