在 Google 表格中的筛选视图中排序时,ArrayFormula 列消失
ArrayFormula column disappears when sorting in a filter view in Google Sheets
我想使用 ArrayFormula
填充 spreadsheet 中的列,但是当我在筛选视图中 Sort A->Z
时,ArrayFormula
列消失了。在某些情况下,该列包含有关范围的 #REF!
错误,而在某些情况下,该列在 Sort
之后只是空白。以下是我正在尝试做的简化版本(在我的实际应用程序中,我正在对另一个 sheet 执行 Vlookup
):
https://docs.google.com/spreadsheets/d/1XbqqedOjuSKuE-ZLIHNw59-r01EsNMpx7YVqOoxSOR4/edit?usp=sharing
column 3
header 使用 ArrayFormula
从 column 1
复制。如果您转到 Filter 1
过滤器视图,您会注意到 column 3
除了一个错误之外是空白的。这发生在我尝试在第 2 列上 Sort Z->A
之后。在我更复杂的 use-case 中,涉及 Vlookup
,在 Sort
之后,该列完全消失(没有 #REF!
错误)。在两种情况下排序之前,一切都很好。
如何使 ArrayFormula 值在排序后保留在过滤器视图中?
感谢您的帮助!
我猜,因为你的引用是正常的(相对的,不是anchored/absolute),排序后的范围A2:A10变成了一些荒谬的东西,比如A7:A4,这取决于在实际排序值上。
此外,如果您将鼠标悬停在 #REF 错误上,它会告诉您什么?
无论如何,请尝试在公式中使用绝对引用:
=arrayformula({"Column 3"; A:A})
编辑
迷人。这是我第一次看到这种类型的错误。从表面上看,这似乎是 Google 电子表格的限制 - 您不能在已排序的筛选视图中使用跨越多行的 ARRAYFORMULAS,因为就像我猜的那样,它弄乱了 ARRAYFORMULA 的范围(如事实上公式现在在 C4 而不是 C1)。
但这也为您提供了解决方案:不要在过滤器视图中包含带有 arrayformula 的单元格。不要将筛选视图的目标范围设为 A1:C20,而是设为 A1:B20。然后 C1 中的 arrayformula 将不会被过滤器影响,并且确实会继续工作。
我已经为我的用例找到了解决方案,对于您的情况,它可能是:
=arrayformula(if(row(C:C)=1;"Column 3";A:A))
但是您需要考虑公式中的所有列。
Example
你试过A2:A了吗?
如果您不放置结束行,则表示该列的末尾。
它对我有用。
干杯
我想使用 ArrayFormula
填充 spreadsheet 中的列,但是当我在筛选视图中 Sort A->Z
时,ArrayFormula
列消失了。在某些情况下,该列包含有关范围的 #REF!
错误,而在某些情况下,该列在 Sort
之后只是空白。以下是我正在尝试做的简化版本(在我的实际应用程序中,我正在对另一个 sheet 执行 Vlookup
):
https://docs.google.com/spreadsheets/d/1XbqqedOjuSKuE-ZLIHNw59-r01EsNMpx7YVqOoxSOR4/edit?usp=sharing
column 3
header 使用 ArrayFormula
从 column 1
复制。如果您转到 Filter 1
过滤器视图,您会注意到 column 3
除了一个错误之外是空白的。这发生在我尝试在第 2 列上 Sort Z->A
之后。在我更复杂的 use-case 中,涉及 Vlookup
,在 Sort
之后,该列完全消失(没有 #REF!
错误)。在两种情况下排序之前,一切都很好。
如何使 ArrayFormula 值在排序后保留在过滤器视图中?
感谢您的帮助!
我猜,因为你的引用是正常的(相对的,不是anchored/absolute),排序后的范围A2:A10变成了一些荒谬的东西,比如A7:A4,这取决于在实际排序值上。
此外,如果您将鼠标悬停在 #REF 错误上,它会告诉您什么?
无论如何,请尝试在公式中使用绝对引用:
=arrayformula({"Column 3"; A:A})
编辑 迷人。这是我第一次看到这种类型的错误。从表面上看,这似乎是 Google 电子表格的限制 - 您不能在已排序的筛选视图中使用跨越多行的 ARRAYFORMULAS,因为就像我猜的那样,它弄乱了 ARRAYFORMULA 的范围(如事实上公式现在在 C4 而不是 C1)。
但这也为您提供了解决方案:不要在过滤器视图中包含带有 arrayformula 的单元格。不要将筛选视图的目标范围设为 A1:C20,而是设为 A1:B20。然后 C1 中的 arrayformula 将不会被过滤器影响,并且确实会继续工作。
我已经为我的用例找到了解决方案,对于您的情况,它可能是:
=arrayformula(if(row(C:C)=1;"Column 3";A:A))
但是您需要考虑公式中的所有列。 Example
你试过A2:A了吗? 如果您不放置结束行,则表示该列的末尾。 它对我有用。
干杯