用Excel批量按条件生成随机日期+时间 配合转换时间戳

本文转载自:用Excel批量按条件生成随机日期+时间 配合转换时间戳

更多内容请访问钻芒博客:https://www.zuanmang.net

适用场景

需要批量大量填入 满足一定条件的日期和时间要求,比如固定在周一到周五的每天上午8:00-12:00 13:00-18:00等正常工作时间。如果在表格内使用可直接使用,如果导入到数据库等其他场景可以转换成时间戳,

文章底部有成品函数,直接可用。

Excel函数

生成时间日期,我们需要用到Excel中的WORKDAY()

WORKDAY(起始日期,天数,非工作日列表)

打开日历,比如11月份工作日共有21天,周末有9天,

我们可以把起始日期设置为2019-11-1,

天数使用随机数函数RANDBETWEEN()生成,格式如下:

RANDBETWEEN(最小值,最大值)

当然,这个函数中的两个参数就要填写0和20。

%title插图%num

非工作日列表,需要我们在Excel工作表某区域内单独列出来,比如放在Sheet2中:

到这里,工作日的随机生成就搞定了:

=WORKDAY("2019-11-1",RANDBETWEEN(0,20),Sheet2!$A$1:$A$9)

我们再来搞定时间点:

在Excel中,一天之内所有时间点都可以表示为一个小数值,不信?你在Excel中输入一个时间,比如8:00:00,右键单击该单元格,设置单元格格式为“常规”,确定,看看是不是变为小数值了?

我把常用的一些时间点的数值列举出来:

%title插图%num

为保证生成的时间点落在工作时间段内,我们只需要随机生成这个小数就可以。

比如要生成上午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")

看看效果吧!

%title插图%num

不停地按F9,可以不停刷新。

以上内容转载于网络。

将时间日期转换成时间戳:

[b2_insert_post id=”https://www.zuanmang.net/36599.html”]

温馨提示:本文最后更新于2023-04-11 10:07:00,某些文章具有时效性,若有错误或已失效,请在下方留言或联系 钻芒博客

相关推荐:

 

posted @   zmki  阅读(1112)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示