sorting - 在 Google 表格的过滤器视图中排序时,ArrayFormula 列消失
问题描述
我想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
,在 a 之后Sort
列完全消失(不留#REF!
错误)。在对这两种情况进行排序之前,一切都很好。
排序后如何使 ArrayFormula 值保留在过滤器视图中?
谢谢你的帮助!
解决方案
我猜是因为你的引用是正常的(相对的,不是锚定的/绝对的),排序后的范围 A2:A10 变成了一些荒谬的东西,比如 A7:A4,这取决于实际的排序值。
另外,如果您将鼠标悬停在#REF 错误上,它会告诉您什么?
无论如何,请尝试在公式中使用绝对引用:
=arrayformula({"Column 3"; A$2:A$10})
编辑 迷人。这是我第一次看到这种类型的错误。从表面上看,这似乎是谷歌电子表格的一个限制——你不能在排序的过滤器视图中使用跨越多行的 ARRAYFORMULAS,因为就像我猜的那样,它弄乱了 ARRAYFORMULA 的范围(如事实所示公式现在在 C4 而不是 C1) 中。
但这也为您提供了解决方案:不要在过滤器视图中包含带有 arrayformula 的单元格。不要将过滤视图的目标范围设为 A1:C20,而是设为 A1:B20。然后C1中的arrayformula将不受过滤器的影响,并且确实会继续工作。
推荐阅读
- node.js - ReferenceError:未定义承诺
- security - 如何使用存储在保险库中的 github-private-key 安全地使用大厅
- php - 无法找出 Sendgrid SMTP (Laravel) 的用户名和密码
- java - Java String 查找和替换部分
- javascript - 空取警报
- javascript - Aurelia - 绑定
- apache-kafka - Kafka 跨集群组 id
- javascript - 如何在 Node.js 中使用 redis WATCH?
- oracle - 从非活动连接中隐藏模式浏览器
- javascript - 我们可以始终使用 knex 和 postgres 将日期列作为字符串(varchar)获取吗?