你能重现这个奇怪的#SPILL吗! ?你能解释一下吗?

发布于 2025-01-15 04:38:22 字数 1821 浏览 2 评论 0原文

在单元格 B3 中,我放置了这个 RANDARRAY :

=RANDARRAY(3,5,1,20,1)

来测试一个小 LET 以在数组中生成唯一值:

=LET( array,B3#,
       aCols, COLUMNS( array ),
       eSeq, SEQUENCE( ROWS( array ) * aCols,, 0 ),
       UNIQUE( INDEX( array, eSeq/aCols + 1, MOD( eSeq, aCols ) + 1 ) ) )

我将其放入 H3 中。

计算时,它会从数组中溢出一个唯一值列表(而 UNIQUE 会按行或按列生成)。

一切都很好,但我注意到当我计算(F9)时,它偶尔会返回#SPILL!。 (并且下面的行中没有任何内容会强制#SPILL!(

因此,当它执行此操作时,我被困住了,并将值复制到新范围并运行 。

然后我将公式 =B3 放入 J3 中,并将其复制到一个新的单元格数组中 查看 B3# 数组中的每个单元格,并复制了我的让公式并将其放入 P3 中,并将 array 设置为 J3:N5 然后我按 F9 直到 #SPILL 再次发生

。频繁 - 大约 15% 的时间

,#SPILL! 发生在两个阵列(B3# 和 J3:N5)上,但偶尔它只发生在两个副本之一上:

发生在 J3:N5

在此处输入图像描述

发生在 B3#

在此处输入图像描述

大多数时候,两者都会发生:

在此处输入图像描述

任何想法为什么?

任何人都可以复制这个吗?

问题的根源,但没有解释

Pb 在评论中提出了这个(更好的)公式。它揭示了问题的根源来自于 UNIQUE 与随机输入的结合。所以我现在尝试了 =UNIQUE(RANDARRAY(15,1,1,20,1)) 并发现它有#SPILL!问题。

同样有趣的是,这个公式可以放置在多个单元格中,并且所有单元格都倾向于#SPILL!即使他们有独立的输入,也是同时进行的。这些会导致#SPILL!如果工作簿中有多个内容,则大约 95% 的情况下。

这里我有十几个,只有一个成功了,那是在按 F9 大约 10 次之后。

输入图片此处描述

In cell B3 I put this RANDARRAY :

=RANDARRAY(3,5,1,20,1)

to test a small LET to generate UNIQUE values across an array:

=LET( array,B3#,
       aCols, COLUMNS( array ),
       eSeq, SEQUENCE( ROWS( array ) * aCols,, 0 ),
       UNIQUE( INDEX( array, eSeq/aCols + 1, MOD( eSeq, aCols ) + 1 ) ) )

that I put in H3.

When it calcs, it spills a list of unique values from the array (whereas UNIQUE generates an either row-wise or column-wise).

All good, but I notice that when I calc (F9), it occasionally returns #SPILL!. (and there was nothing in the rows underneath that would force a #SPILL!(

So, I trapped when it does this and copied the values to a new range and ran the formula on just those values. The #SPILL! does not happen.

Then I put the formula =B3 into J3 and copied it across to make a new array of cells that simply looks at each cell in the B3# array and I made a copy of my LET formula and placed it in P3 with array set to J3:N5. Then I hit F9 until the #SPILL! recurred.

It happens quite frequently - about 15% of the time.

Usually, the #SPILL! happens on both arrays (B3# and J3:N5), but every so often it happens to only one of the two copies:

Happens to J3:N5

enter image description here

Happens to B3#

enter image description here

Most of the time, it happens to both:

enter image description here

Any idea why?

Can anyone reproduce this?

Source of the problem, but no explanation

P.b. proposed in the comments this (much better) formula. It exposed that the root of the problem comes from UNIQUE in combination with a Random input. So I have now tried =UNIQUE(RANDARRAY(15,1,1,20,1)) and found that it has the #SPILL! problem.

What is also interesting is that this formula can be placed in multiple cells and all of them tend to #SPILL! simultaneously even though they would have independent inputs. These result in #SPILL! about 95% of the time if more than one is in a workbook.

Here I have a dozen of them - only one succeeded and that was after hitting F9 about 10 times.

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文