用Excel公式,批量生成工作时间段时间点(打酱油专用)

打酱油,打酱油,打酱油……

有一天,有一张数千行的表格,上面有那么一列——“登记时间”,这一列需要填充为11月份工作日上班时间中的某一时间点,格式为yyyy-MM-dd HH:mm:ss,年月日时分秒都有了……

首先,我们先来搞定工作日的随机生成:

这一步用到了Excel中的WORKDAY()函数,该函数可以返回指定日期前后n个工作日的具体日期,格式如下:

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,不停地刷新哦!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值