snl*_*snl 7 sorting filter google-sheets array-formulas
我想ArrayFormula用来填充电子表格中的一列,但是当我Sort A->Z在过滤器视图中时,该ArrayFormula列消失了。在某些情况下,该列包含#REF!有关范围的错误,而在某些情况下,该列在Sort. 以下是我正在尝试做的事情的简化版本(在我的实际应用程序中,我正在Vlookup对另一张工作表进行操作):
https://docs.google.com/spreadsheets/d/1XbqqedOjuSKuE-ZLIHNw59-r01EsNMpx7YVqOoxSOR4/edit?usp=sharing

所述column 3报头使用一个ArrayFormula从复制column 1。如果您转到Filter 1过滤器视图,您会注意到column 3除了错误之外,它是空白的。这发生在我尝试Sort Z->A在第 2 列上之后。在我更复杂的用例中,涉及 a Vlookup,在 aSort列完全消失后(没有留下任何#REF!错误)。在这两种情况下排序之前,一切都很好。
排序后如何使 ArrayFormula 值保留在过滤器视图中?
谢谢你的帮助!
我猜,因为你的引用是正常的(相对的,不是锚定的/绝对的),排序后的范围 A2:A10 变成了荒谬的东西,比如 A7:A4,这取决于实际的排序值。
此外,如果您将鼠标悬停在 #REF 错误上,它会告诉您什么?
无论如何,请尝试在您的公式中使用绝对引用:
=arrayformula({"Column 3"; A$2:A$10})
Run Code Online (Sandbox Code Playgroud)
编辑 引人入胜。这是我第一次看到这种类型的错误。从表面上看,它似乎是谷歌电子表格的一个限制——你不能在排序的过滤器视图中使用跨越多行的 ARRAYFORMULAS,因为,就像我猜的那样,它弄乱了 ARRAYFORMULA 的范围(正如事实所表明的那样公式现在在 C4 而不是 C1 中)。
但这也为您提供了解决方案:不要在过滤器视图中包含带有 arrayformula 的单元格。不要将过滤器视图的目标范围设为 A1:C20,而是设为 A1:B20。那么 C1 中的 arrayformula 将不会受到过滤器的影响,并且确实会继续工作。

小智 5
我已经找到了适合我的用例的解决方案,就您而言,它可能是:
=arrayformula(if(row(C:C)=1;"Column 3";A:A))
Run Code Online (Sandbox Code Playgroud)
但您需要考虑公式中的整个列。 例子
| 归档时间: |
|
| 查看次数: |
3307 次 |
| 最近记录: |