Excel如何根据时间段按概率填入随机的日期时间?
场景是电商后台的售出清单,想从[2022.5.1000:00-2022.5.2523:59]随机生成日期和时间,填入单元格.同时,根据电商平台的下单规律,让生成的数据在[...
场景是电商后台的售出清单,想从 [2022.5.10 00:00 - 2022.5.25 23:59] 随机生成日期和时间,填入单元格.同时,根据电商平台的下单规律,让生成的数据在[18:00-23:00]的时间段更多一些,[7:00-17:59]其次,其它时间概率最小.图片是概率均等的日期,这种情况下数据分布太均衡,不符合真实情况提前感谢解答!!!
展开
3个回答
2022-08-05 · 知道合伙人软件行家
关注
展开全部
本问题涉及到随机数的概率分布问题,的确如题主所说,Excel的两个随机数函数(rand产生0~1之间的随机,randbetween产生指定数字之间的随机整数)产生的随机数都是均布的的。要产生非均布的随机数,得使用点技巧,本人的方法是,用二次随机的方法,第一次随机数用于指定第2次随机数的范围。看题主的截图,订单没有要求按时间排序,相对来说要简单些,如还要按时间排序,就更复杂些了。如图,比如产生昨天(8月5日)的30个随机订单时间,18-24时按50%,7-18时按30%,其他时间20%(只是大概率,只有数据量极大时才能接近),选择A2:A31,输入公式(当然也可以只在A2中输入再下拉):
=TEXT("2022/8/4"+CHOOSE(LOOKUP(RANDBETWEEN(1,100),{0,50,80},{1,2,3}),RAND()*(24-18)+18,RAND()*(18-7)+7,RAND()*7)/24,"yyyy/m/d hh:mm:ss")
按Ctrl+回车键,完成公式输入。
下面的截图中,增加了B列计算A列的时间段,并插入数据透视表对各个时间的订单数分别统计。
展开全部
思路:1分钟实际就是1/24/60天。A1单元格输入起始时间,A2单元格可以通过判断A1时间范围选择=A1+RANDBETWEEN(0,3)/24/60或A1+RANDBETWEEN(0,5)/24/60或A1+RANDBETWEEN(0,10)/24/60,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
=RANDBETWEEN(DATEVALUE("2022-5-10"),DATEVALUE("2022-5-25"))+RANDBETWEEN(0,59)/1440+(IFS(RAND()>0.5,RANDBETWEEN(18,23),RAND()>0.2,RANDBETWEEN(7,17),TRUE,RANDBETWEEN(0,6))/24
注意单元格格式使用自定义:yyyy/m/d h:mm
概率调整RAND()>0.5,实现,.5是前后对半,之后的再对半(IFS为2019函数,如果老版本使用IF镶套)
注:概率对半,靠随机数因此数据少的时候,可能看不出,RAND()零至一的随机数,概率增大减小靠调整大于多少决定
***********旧版IF镶套公式如下:
=RANDBETWEEN(DATEVALUE("2022-5-10"),DATEVALUE("2022-5-25"))+RANDBETWEEN(0,59)/1440+(IF(RAND()>0.5,RANDBETWEEN(18,23),IF(RAND()>0.2,RANDBETWEEN(7,17),RANDBETWEEN(0,6)))/24
注意单元格格式使用自定义:yyyy/m/d h:mm
概率调整RAND()>0.5,实现,.5是前后对半,之后的再对半(IFS为2019函数,如果老版本使用IF镶套)
注:概率对半,靠随机数因此数据少的时候,可能看不出,RAND()零至一的随机数,概率增大减小靠调整大于多少决定
***********旧版IF镶套公式如下:
=RANDBETWEEN(DATEVALUE("2022-5-10"),DATEVALUE("2022-5-25"))+RANDBETWEEN(0,59)/1440+(IF(RAND()>0.5,RANDBETWEEN(18,23),IF(RAND()>0.2,RANDBETWEEN(7,17),RANDBETWEEN(0,6)))/24
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询