【发布时间】:2016-02-23 17:42:58
【问题描述】:
谷歌表格功能arrayformula的文档说
允许将从数组公式返回的值显示到多行和/或多列中,以及对数组使用非数组函数。
这在以下情况下运行良好,只需将列 A 中的所有值除以五:
=arrayformula(A2:A / 5)
现在我想将每一行的结果下限为 0,即在行 n 我想计算 max(An, 0)。这是我的非工作尝试:
=arrayformula(max(A2:A / 5, 0))
max 本身可以在不使用arrayformula 的情况下完美运行,也就是说,如果我在所有行中填写max(A2 / 5, 0),我就会得到我想要的。我希望max 函数对两个单个值进行操作,即在 An 中找到的单个值和常量 0。arrayformula 方法不起作用的原因是 max “窃取”范围,将整个范围 A2:A 聚合为一个数字。因此,arrayformula 仅对这个数字进行操作,并完全忽略了A2:A 范围,从而为所有单元格生成相同的值。
如何使arrayformula 解释范围A2:A,或者更确切地说,如何防止max 函数这样做并让它对两个单个值进行操作?
(我可以改用if 函数来解决这个问题,但这似乎不是特别优雅并且需要大量代码重复,特别是因为我的真正问题使用了更多涉及的算术以及min 和max.)
【问题讨论】:
-
“下限”是什么意思?请提供输入值列表和所需输出列表的示例。
-
下限我的意思是结果应该至少为0。因此
max。除以 5 只是为数组公式提供一些有意义的示例。输入=10 -> 输出=2。输入=-10 -> 输出 = 0。 -
请提供如下示例:输入 = {1, 2, -3, 5, 10, 0, -1},输出 = {1,2,5,10}。看起来你想要的功能是
filter() -
输入={10, 5, 0, -5, -10} -> 输出={2, 1, 0, 0, 0}
-
请提供更多关于您想要什么的说明。你想让函数返回一个值还是一个数组?您的问题令人困惑,因为
max和min都返回单个值,但您问的是arrayformula吗?您是在询问您的功能优化,在这种情况下您真的应该提供实际代码吗?
标签: google-sheets array-formulas