如何为 Excel 中的随机数序列找到合适的数学函数
how to find the appropriate math function for series with random numbers in Excel
我在Excel
遇到这个问题很头疼
我必须模拟每 5 百万次随机出现的订单,处理每个订单的时间是 3.9 百万
如果订单是统一的,我创建模拟没有任何问题,但每次我在一段时间内有 0 个订单时,我的模拟都会失败。
处理一个订单的时间=390万
每 5 百万个随机订单:
order flow: 2 2 2 2 2 2 2 2 2 2 2 2
time (mn) : 5 10 15 20 25 30 35 40 45 50 55 60
orders done: 1 2 3 5 6 7 8 10 11 12 14 15
计算订单是否完成,例如第一个和第二个订单
= INT(5/3.9)=1 (in 5mn i have just one order done)
= INT(10/3.9)=2 (in 10mn i have 2 orders done)
这里没问题,但是一旦我的随机订单发生变化,我就找不到创建已完成订单系列的函数。
order flow: 1 0 6 2 0 1 3 0 1 2 4 0 1
time (mn) : 5 10 15 20 25 30 35 40 45 50 55 60 65
orders done: 1 1 2 3 4 6 7 8 9 12 13 14 16
我说每次我没有任何订单要治疗时,统一的系列 1 2 3 5...从头开始只添加已经准备好的东西,但我不知道如何在函数中翻译它。
我希望我的问题很清楚,谢谢
我想你的问题已经理解了,但是你说的第二个序列你写的是错误的。从时间 45 分钟和 50 分钟开始,5 分钟内增加了 3 个订单,这是不可能的,因为您每 5 分钟最多可以处理 5/3,9 = 1,282 个订单。
我不知道是否有计算你需要的公式,但看看我的 table。
并考虑第一列的这个公式(函数 SE() 在我的语言中是 IF()):
for B3 -> =SE(B4=0;0;SE(B4=1;1;5/3,9))
for B4 -> =B1
for B5 -> =B4-B3
for B7 -> =INT(B3) -- for C7 -> INT(C3) -- and so on for D7, F7, ...
对于 C 列、D 列和其他列,在 C 中使用此公式并将其扩展到其他列:
for C3 -> =SE(C1=0;SE(B5=0;B3;SE(B5<(5/3,9);B3+B5;B3+(5/3,9)));SE((C1+B5)<(5/3,9);B3+C1+B5;B3+5/3,9))
for C4 -> =B4+C1
for C5 -> =C4-C3
您必须将每列中的数字视为 5 分钟时间段结束时 odrers/queue 的状态。
您可以看到收到的订单总数、尚未完成的订单队列、已完成的订单和已完成的订单(实际上在 5 分钟内,如果您收到 2 个订单,您已经完成了一个订单,但您已经处理了多个订单...... .).
假设订单在 5 分钟时间段的开始到达,这将起作用……如果订单在被视为 "time slot" 的五分钟中的第三分钟到达,您无法计算您可以接收多少订单处理,除非您指定此订单在 5 分钟时段内到达的时间。
关于公式...嗯,它只是评估可以验证的不同情况:
- 如果没有订单,也没有排队的订单,则没有工作要做,因此处理的订单将是已经处理的订单
- 如果没有订单且排队的订单少于5/3,9(5分钟内可以处理的最大订单),则处理的订单总数将为已完成的订单加上排队的订单
- 如果没有订单并且排队的订单超过5/3,9 处理的订单总数将是已经完成的订单加上5/3,9(所有可以完成的工作)
- 如果有订单,且前一个时间段已到订单加上已排队订单的总和小于5/3,9处理的订单总数将是已完成订单加上已到订单总和和排队的人
- 如果有订单并且到达的订单加上排队的订单的总和大于5/3,9将完成最大工作量(5/3,9)并且总订单将是已经完成的订单加上 5/3,9
希望这是您问题的解决方案 ;)
埃托
编辑:
刚刚意识到不需要所有这些测试,这足以将 C3 端扩展到 D3、E3、...
=SE((C1+B5)<(5/3,9);B3+C1+B5;B3+5/3,9)
;)
我在Excel
遇到这个问题很头疼我必须模拟每 5 百万次随机出现的订单,处理每个订单的时间是 3.9 百万
如果订单是统一的,我创建模拟没有任何问题,但每次我在一段时间内有 0 个订单时,我的模拟都会失败。
处理一个订单的时间=390万
每 5 百万个随机订单:
order flow: 2 2 2 2 2 2 2 2 2 2 2 2
time (mn) : 5 10 15 20 25 30 35 40 45 50 55 60
orders done: 1 2 3 5 6 7 8 10 11 12 14 15
计算订单是否完成,例如第一个和第二个订单
= INT(5/3.9)=1 (in 5mn i have just one order done)
= INT(10/3.9)=2 (in 10mn i have 2 orders done)
这里没问题,但是一旦我的随机订单发生变化,我就找不到创建已完成订单系列的函数。
order flow: 1 0 6 2 0 1 3 0 1 2 4 0 1
time (mn) : 5 10 15 20 25 30 35 40 45 50 55 60 65
orders done: 1 1 2 3 4 6 7 8 9 12 13 14 16
我说每次我没有任何订单要治疗时,统一的系列 1 2 3 5...从头开始只添加已经准备好的东西,但我不知道如何在函数中翻译它。
我希望我的问题很清楚,谢谢
我想你的问题已经理解了,但是你说的第二个序列你写的是错误的。从时间 45 分钟和 50 分钟开始,5 分钟内增加了 3 个订单,这是不可能的,因为您每 5 分钟最多可以处理 5/3,9 = 1,282 个订单。
我不知道是否有计算你需要的公式,但看看我的 table。
并考虑第一列的这个公式(函数 SE() 在我的语言中是 IF()):
for B3 -> =SE(B4=0;0;SE(B4=1;1;5/3,9))
for B4 -> =B1
for B5 -> =B4-B3
for B7 -> =INT(B3) -- for C7 -> INT(C3) -- and so on for D7, F7, ...
对于 C 列、D 列和其他列,在 C 中使用此公式并将其扩展到其他列:
for C3 -> =SE(C1=0;SE(B5=0;B3;SE(B5<(5/3,9);B3+B5;B3+(5/3,9)));SE((C1+B5)<(5/3,9);B3+C1+B5;B3+5/3,9))
for C4 -> =B4+C1
for C5 -> =C4-C3
您必须将每列中的数字视为 5 分钟时间段结束时 odrers/queue 的状态。 您可以看到收到的订单总数、尚未完成的订单队列、已完成的订单和已完成的订单(实际上在 5 分钟内,如果您收到 2 个订单,您已经完成了一个订单,但您已经处理了多个订单...... .).
假设订单在 5 分钟时间段的开始到达,这将起作用……如果订单在被视为 "time slot" 的五分钟中的第三分钟到达,您无法计算您可以接收多少订单处理,除非您指定此订单在 5 分钟时段内到达的时间。
关于公式...嗯,它只是评估可以验证的不同情况:
- 如果没有订单,也没有排队的订单,则没有工作要做,因此处理的订单将是已经处理的订单
- 如果没有订单且排队的订单少于5/3,9(5分钟内可以处理的最大订单),则处理的订单总数将为已完成的订单加上排队的订单
- 如果没有订单并且排队的订单超过5/3,9 处理的订单总数将是已经完成的订单加上5/3,9(所有可以完成的工作)
- 如果有订单,且前一个时间段已到订单加上已排队订单的总和小于5/3,9处理的订单总数将是已完成订单加上已到订单总和和排队的人
- 如果有订单并且到达的订单加上排队的订单的总和大于5/3,9将完成最大工作量(5/3,9)并且总订单将是已经完成的订单加上 5/3,9
希望这是您问题的解决方案 ;)
埃托
编辑:
刚刚意识到不需要所有这些测试,这足以将 C3 端扩展到 D3、E3、...
=SE((C1+B5)<(5/3,9);B3+C1+B5;B3+5/3,9)
;)