我正在尝试创建一个随机值表,该表与网站上选择的优先级相对应。基本上是在尝试先发制人地做一些猜测工作。
从本质上讲,我想做的是知道如何在1-4之间生成一个随机数,而在同一行中我不能两次获得相同的数字。最好不是易失的,但是如果我每次计算都重新计算,我就可以处理。
例如,我想在4列之间生成一个介于1-4之间的值,因此一列将具有1,一列将具有3,一列将具有2,一列将具有4。
我已经尝试过Randbetween()函数,但是可悲的是,它允许重复。如果有类似Distinct(Randbetween())之类的东西,那将解决我的问题。
有什么建议么?干杯。
如果您愿意坚持使用1到4的范围,则可以通过在助手数组中设置所有24个选项,然后随机选择一个选项来做到这一点。
在Sheet2的单元格A1到B24中,放置以下内容:
1 1234
2 1243
3 1324
4 1342
5 1423
6 1432
7 2134
8 2143
9 2314
10 2341
11 2413
12 2431
13 3124
14 3142
15 3214
16 3241
17 3412
18 3421
19 4123
20 4132
21 4213
22 4231
23 4312
24 4321
那是1234的24个可能的排列,这是选择数字1到4而不用替换的所有可能方式。
然后,返回到Sheet1。在A1中,输入以下公式:
=INT(RAND()*24)+1
(之所以这样做,是因为我正在使用足够老版本的Excel,但我没有该RANDBETWEEN
功能。但是您也可以使用=RANDBETWEEN(1,24)
。)
然后,在B1中输入以下内容:
=VLOOKUP(A1,Sheet2!A$1:B$24,2,FALSE)
这将在Sheet2的数组中查找。它将在第一列中查找A1中的任何值(1到24之间的随机数),并在第二列中为您提供值(1234、1243、1324等)。
然后,将它们放在C1到F1中:
C1: =MID($B1,1,1)
D1: =MID($B1,2,1)
E1: =MID($B1,3,1)
F1: =MID($B1,4,1)
这会将B1中的四位数字分解为各个组成部分。因此,现在C1到F1的数字为1到4,并且是随机的,没有重复。
这不能很好地扩展。在Sheet2上的辅助数组将需要具有N!行,其中N是所需的值数。而且增长很快。如果您想要1到7之间的随机数,则助手数组中将需要5,040行。但是,如果您只想对1到4之间的随机数执行此操作,那是可以控制的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句