用excel产生随机日期(年月日),怎样用公式?

2025-03-13 19:04:56
推荐回答(4个)
回答1:

="1996-1-1"+RAND()*("1997-12-31"-"1996-1-1")
=TEXT(INT(RAND()*730)+35065,"yyyy-mm-dd")

这些公式在EXCEL中你是可以看到他们是什么意思的

我想解释一下EXCEL对日期的规则
EXCEL它认为数字"1"就是"1900年1月1日"
EXCEL它认为数字"2"就是"1900年1月2日"
EXCEL它认为数字"3"就是"1900年1月3日"
.
根据上面的规则从1900.1.1到2010.2.14所有的日子加起来一共是"40223"天
也就是说,你把EXCEL的单元格式设置为日期,然后在里面输入"40223"
它就会给你显示"2010年2月14日"

以上

回答2:

楼上的公式不错。来个直观一点的:
="1996-1-1"+RAND()*("1997-12-31"-"1996-1-1")

已经见笑了,呵呵。
730是两年的天数,35065即1996-1-1(从1900-1-1到1996-1-1的天数)。

回答3:

=TEXT(INT(RAND()*730)+35065,"yyyy-mm-dd")
730是1997-12-31到1996-1-1的时间区间宽度(天),35065即1996-1-1的EXCEL里的数值显示结果.
假设A1单元格存储下区间日期,B1单元格存储上区间日期.公式可变更如下:
=TEXT(INT(RAND()*(B1-A1))+A1,"YYYY-MM-DD")

回答4:

一楼正确,二楼的构思巧妙,但是弄巧成拙,结果正确,格式不对
也许是实验了="2010-2-14"显示是正确的,
但是="2010-2-14"+"2010-2-14"就显示的数字了
估计只要出现运算符号,Excel就会按照整型数据处理吧

想套用2010-1-1,就在单元格里输入2010-1-1,将单元格格式设为数值就变成40179了