带有数组函数的公式有概率出现空数组错误。具体函数较为复杂,请看详细信息

匿名
2024-09-24T02:27:23+00:00

=LET(

 X,RANDBETWEEN(15,18), 

 Y,RANDARRAY(1,X,2,8,TRUE), 

 Z,RANDARRAY(1,18-X,9,20,TRUE), 

 Q,HSTACK(Y,Z), 

 A,SORTBY(Q,RANDARRAY(1,18,1,10000,TRUE),1), 

 INDEX(A,SEQUENCE(2,9,1,1)))

这个公式中有概率返回空数组错误,目前有以下怀疑方向。

  1.     RANDBETWEEN与RANDARRAY嵌套使用有概率出现溢出错误,无法生成正确的数组。
    
  2.    构造函数X的值等于18时,构造函数Z会生成一个空数组,但是在构造函数Q中会将两个数组进行合并,生成最终的非空数组。可      能性较小。
    
  3.     公式的计算顺序有问题,导致最终进行随机排序的是一个空数组,而不是由随机数函数产生的随机数函数。可能性近乎于0。
    

Microsoft 365 和 Office | Excel | 家庭版 | Windows

锁定的问题。 此问题已从 Microsoft 支持社区迁移。 你可投票决定它是否有用,但不能添加评论或回复,也不能关注问题。

0 个注释 无注释

1 个答案

排序依据: 非常有帮助
  1. 匿名
    2024-09-25T04:16:09+00:00

    您好,凡 何1

    欢迎在微软社区发帖提问。

    您的第二个猜测接近正确答案。

    问题的根源就在HSATCK函数。Z可能会由于X=18而变为空数组,这个空数组是没有特定行列数的。HSTACK函数要求水平拼接的数组行数相同,但由于无法判断Z的行列数,所以也会报错。

    您可以直接在单元格中输入

    =HSTACK(RANDARRAY(1,18,2,8,TRUE),RANDARRAY(1,0,9,20,TRUE))

    以做测试,可以看出这个公式是永远得不出正确结果的。

    所以,您可以考虑将随机数范围定为(15,17);如果必须要考虑X=18的情况,您需要考虑在拼接之外为它单独设定一个例外情况。

    此致敬意,
    Jonathan Z | Microsoft 社区支持专员

    此答案是否有帮助?

    0 个注释 无注释