我正在寻找一种方法来查找RAND()
号码在0到1的无理(有效RAND())数字列表中的位置。
所以我在[{1}}
中有一个数字列表0.1003,0.1984,0.3895,0.4506,0.4724,0.4856,0.5602,0.8542然后我有一个A1:A8
号码来检查列表。现在我已尝试RAND()
,但排名功能要求您的查找值位于列表中。
一个简单的解决方案是将我的RANK.AV(RAND(),A1:A8)
放在列表底部(RAND()
)并使用A9
,因此我的号码 包含在列表,但是我必须为数千个兰特数的数组中的每个数字执行此操作,因此不切实际。
也许我可以通过某种方式将另一个单元格连接到一个数组而不将其实际放置在相邻位置?
例如,对于B1中的RAND(),我可以写入C1:
RANK.AV(A9,A1:A9)
,但我尝试了一些方法(&,+)并且无法实现此阵列加入功能,所以我想我会寻求帮助!也许需要宏或UDF?
答案 0 :(得分:0)
这可以解决问题:
=RANK.AVG(INDEX(A1:A8,RANDBETWEEN(1,COUNT(A1:A8))),A1:A8)
这是从随机数中随机选择的。
答案 1 :(得分:0)
对不起@Chris,我确定这就是你在评论中的意思: -
=IF(B1<A1,1,MATCH(B1,$A$1:$A$10)+1)
您的新随机数在B1中,您现有的列表在A1:A10中,按升序排序。如果新数字小于列表中的第一个条目,这将是一个特殊情况:否则,您可以通过在A1中放置零并向下移动伪随机数来简化公式
=MATCH(B1,A$1:A$10)
如果你想允许关系,你可以纠正它: -
=IF(B1<A1,1,MATCH(B1,$A$1:$A$10)+1)-COUNTIF($A$1:$A$10,B1)/2
或只是
=MATCH(B1,$A$1:$A$10)-COUNTIF($A$1:$A$10,B1)/2
A1中为零。
如果有8个数字,我假设排名从1 =最小到8 =最大:您可以通过从计数中减去排名(A $ 1:A $ 10)+2或计数(A)来轻松更改排名如果包含零,则$ 1:A $ 10)+1。