适用场景
需要批量大量填入 满足一定条件的日期和时间要求,比如固定在周一到周五的每天上午8:00-12:00 13:00-18:00等正常工作时间。如果在表格内使用可直接使用,如果导入到数据库等其他场景可以转换成时间戳,
文章底部有成品函数,直接可用。
Excel函数
生成时间日期,我们需要用到Excel中的WORKDAY()
WORKDAY(起始日期,天数,非工作日列表)
打开日历,比如11月份工作日共有21天,周末有9天,
我们可以把起始日期设置为2019-11-1,
天数使用随机数函数RANDBETWEEN()生成,格式如下:
RANDBETWEEN(最小值,最大值)
当然,这个函数中的两个参数就要填写0和20。
非工作日列表,需要我们在Excel工作表某区域内单独列出来,比如放在Sheet2中:
到这里,工作日的随机生成就搞定了:
=WORKDAY("2019-11-1",RANDBETWEEN(0,20),Sheet2!$A$1:$A$9)
我们再来搞定时间点:
在Excel中,一天之内所有时间点都可以表示为一个小数值,不信?你在Excel中输入一个时间,比如8:00:00,右键单击该单元格,设置单元格格式为“常规”,确定,看看是不是变为小数值了?
我把常用的一些时间点的数值列举出来:
为保证生成的时间点落在工作时间段内,我们只需要随机生成这个小数就可以。
比如要生成上午8:30至11:30内的时间点,只要生成一个0.3542至0.4791之间的小数就可以,简单,还是请出RANDBETWEEN()函数。具体怎么生成,看下面:
RANDBETWEEN(3542,4791)/10000
如果要生成下午13:30到17:00的时间点,如下:
RANDBETWEEN(5625,7083)/10000
问题来了,如何能够同时生成上午和下午的时间点,我们还是让电脑来决定吧!
IF(RANDBETWEEN(1,2)=2,RANDBETWEEN(3542,4930),RANDBETWEEN(5625,7083))/10000
看明白了吗?先从1和2中间生成一个随机数,这个随机数如果为2,就生成一个上午的时间点,否则就生成一个下午的时间点。
好了,到这儿我们就可以把上面两步做好的公式连接起来啦!
当然,为了保证格式美观,我们还需要用TEXT()函数规范一下生成的文本格式,在这里,日期用”yyyy-MM-dd”格式,时间用”hh:mm:ss”格式。完整公式如下:
=TEXT(WORKDAY("2019-11-1",RANDBETWEEN(0,20),Sheet2!$A$1:$A$9),"yyyy-MM-dd")&" "&TEXT(IF(RANDBETWEEN(1,2)=2,RANDBETWEEN(3542,4930),RANDBETWEEN(5625,7083))/10000,"hh:mm:ss")
看看效果吧!
不停地按F9,可以不停刷新。
以上内容转载于网络。
将时间日期转换成时间戳:
[b2_insert_post id=”https://www.zuanmang.net/36599.html”]
暂无评论内容