在列表中查找新号码的位置
Find location of NEW number in list
我正在寻找一种方法来查找 RAND()
数字在从 0 到 1 的无理数(实际上也是 RAND())列表中的位置。
所以我在 A1:A8
中有一个数字列表 0.1003、0.1984、0.3895、0.4506、0.4724、0.4856、0.5602、0.8542
然后我有一个 RAND()
号码要对照列表核对。现在我已经尝试 RANK.AV(RAND(),A1:A8)
,但是排名函数要求您的查找值在列表中。
一个简单的解决方案是将我的 RAND()
放在列表的底部 (A9
) 并使用 RANK.AV(A9,A1:A9)
,所以我的号码 是 包含在列表中,但是我必须对我的数千兰特数字数组中的每个数字执行此操作,所以不切实际。
也许有一些方法可以将另一个单元格连接到一个数组中,而无需实际将其相邻放置?
例如,对于 B1 中的 RAND(),我可以在 C1 中编写:
=RANK.AV(B1,ARRAY.JOIN(A1:A8,B1))
,但是我试了几种方法(&,+)都无法实现这个数组连接功能,所以我想我会寻求帮助!也许需要宏或 UDF?
这可以满足您的需要:
=RANK.AVG(INDEX(A1:A8,RANDBETWEEN(1,COUNT(A1:A8))),A1:A8)
这对随机数中的随机选择进行排名。
抱歉@Chris,我确定这就是您在评论中的意思:-
=IF(B1<A1,1,MATCH(B1,$A:$A)+1)
您的新随机数在 B1 中,您现有的列表在 A1:A10 中,按升序排序。如果新数字小于列表中的第一个条目,这将是一种特殊情况:否则,您可以通过在 A1 中放置一个零并将伪随机数向下移动来允许它,这将简化公式
=MATCH(B1,A:A)
如果你想允许领带,你可以更正它:-
=IF(B1<A1,1,MATCH(B1,$A:$A)+1)-COUNTIF($A:$A,B1)/2
或者只是
=MATCH(B1,$A:$A)-COUNTIF($A:$A,B1)/2
A1 中有一个零。
如果有 8 个数字,我假设排名是从 1=最小到 8=最大:您可以通过从 count(A$1:A$10)+2 或 count(A $1:A$10)+1 如果包含零。
我正在寻找一种方法来查找 RAND()
数字在从 0 到 1 的无理数(实际上也是 RAND())列表中的位置。
所以我在 A1:A8
然后我有一个 RAND()
号码要对照列表核对。现在我已经尝试 RANK.AV(RAND(),A1:A8)
,但是排名函数要求您的查找值在列表中。
一个简单的解决方案是将我的 RAND()
放在列表的底部 (A9
) 并使用 RANK.AV(A9,A1:A9)
,所以我的号码 是 包含在列表中,但是我必须对我的数千兰特数字数组中的每个数字执行此操作,所以不切实际。
也许有一些方法可以将另一个单元格连接到一个数组中,而无需实际将其相邻放置?
例如,对于 B1 中的 RAND(),我可以在 C1 中编写:
=RANK.AV(B1,ARRAY.JOIN(A1:A8,B1))
,但是我试了几种方法(&,+)都无法实现这个数组连接功能,所以我想我会寻求帮助!也许需要宏或 UDF?
这可以满足您的需要:
=RANK.AVG(INDEX(A1:A8,RANDBETWEEN(1,COUNT(A1:A8))),A1:A8)
这对随机数中的随机选择进行排名。
抱歉@Chris,我确定这就是您在评论中的意思:-
=IF(B1<A1,1,MATCH(B1,$A:$A)+1)
您的新随机数在 B1 中,您现有的列表在 A1:A10 中,按升序排序。如果新数字小于列表中的第一个条目,这将是一种特殊情况:否则,您可以通过在 A1 中放置一个零并将伪随机数向下移动来允许它,这将简化公式
=MATCH(B1,A:A)
如果你想允许领带,你可以更正它:-
=IF(B1<A1,1,MATCH(B1,$A:$A)+1)-COUNTIF($A:$A,B1)/2
或者只是
=MATCH(B1,$A:$A)-COUNTIF($A:$A,B1)/2
A1 中有一个零。
如果有 8 个数字,我假设排名是从 1=最小到 8=最大:您可以通过从 count(A$1:A$10)+2 或 count(A $1:A$10)+1 如果包含零。