Microsoft 365 和 Office | Excel | 家庭版 | Windows
Microsoft 电子表格软件系列,其中包含用于分析、绘制图表和传达数据的工具。
=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)))
这个公式中有概率返回空数组错误,目前有以下怀疑方向。
RANDBETWEEN与RANDARRAY嵌套使用有概率出现溢出错误,无法生成正确的数组。
构造函数X的值等于18时,构造函数Z会生成一个空数组,但是在构造函数Q中会将两个数组进行合并,生成最终的非空数组。可 能性较小。
公式的计算顺序有问题,导致最终进行随机排序的是一个空数组,而不是由随机数函数产生的随机数函数。可能性近乎于0。
Microsoft 电子表格软件系列,其中包含用于分析、绘制图表和传达数据的工具。
锁定的问题。 此问题已从 Microsoft 支持社区迁移。 你可投票决定它是否有用,但不能添加评论或回复,也不能关注问题。
您好,凡 何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 社区支持专员