在 Google 表格的过滤视图中排序时,ArrayFormula 列消失
Posted
技术标签:
【中文标题】在 Google 表格的过滤视图中排序时,ArrayFormula 列消失【英文标题】:ArrayFormula column disappears when sorting in a filter view in Google Sheets 【发布时间】:2019-01-18 15:12:30 【问题描述】:我想使用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
是空白的,除了一个错误。这发生在我尝试在第 2 列上 Sort Z->A
之后。在我更复杂的用例中,涉及 Vlookup
,在 Sort
之后,该列完全消失(没有留下 #REF!
错误)。在对这两种情况进行排序之前,一切都很好。
如何使 ArrayFormula 值在排序后保留在过滤器视图中?
感谢您的帮助!
【问题讨论】:
【参考方案1】:我猜是因为你的引用是正常的(相对的,不是锚定的/绝对的),排序后的范围 A2:A10 变成了一些荒谬的东西,比如 A7:A4,这取决于实际排序的值。
另外,如果您将鼠标悬停在 #REF 错误上,它会告诉您什么?
无论如何,请尝试在公式中使用绝对引用:
=arrayformula("Column 3"; A$2:A$10)
编辑 迷人。这是我第一次看到这种类型的错误。从表面上看,这似乎是谷歌电子表格的一个限制——你不能在排序的过滤器视图中使用跨越多行的 ARRAYFORMULAS,因为就像我猜的那样,它弄乱了 ARRAYFORMULA 的范围(如事实所示公式现在在 C4 而不是 C1) 中。
但这也为您提供了解决方案:不要在过滤视图中包含带有数组公式的单元格。不要将过滤视图的目标范围设为 A1:C20,而是设为 A1:B20。然后C1中的arrayformula将不受过滤器的影响,并且确实会继续工作。
【讨论】:
绝对引用并没有解决我的问题。编辑以包含弹出错误。【参考方案2】:我已经为我的用例找到了一个解决方案,在你的情况下,它可能是:
=arrayformula(if(row(C:C)=1;"Column 3";A:A))
但您需要考虑公式中的所有列。 Example
【讨论】:
这对我来说适用于某些专栏,但不适用于其他专栏。 这对我也有用,但我花了很长时间才明白你的意思,所以让我尝试扩展......你需要将公式设置为 第一行 列 C,以便更新整个列。为确保该列具有您想要的标题,您有 IF - 基本上如果这是第一行,则在单元格中显示“第 3 列”。【参考方案3】:你试过 A2:A 吗? 如果您不放置结束行,则表示该列的结尾。 它对我有用。
干杯
【讨论】:
以上是关于在 Google 表格的过滤视图中排序时,ArrayFormula 列消失的主要内容,如果未能解决你的问题,请参考以下文章
使用 Google 表格中的单个公式从范围创建动态排序和过滤列表