Google表格功能// It should contain only the filename not the complete path
header("Content-Disposition: attachment; filename=".basename($archive_file_name));
// Adding file-size to header
header("Content-Length: " . filesize($archive_file_name));
// Check that is path to zip with filename
readfile($archive_file_name);
的文档说明
允许将从数组公式返回的值显示为多行和/或列,并将非数组函数与数组一起使用。
这在以下情况下效果很好,它只是将 A 列中的所有值除以5:
arrayformula
现在我想将每行中的结果下限0,即在行 n 中我想计算=arrayformula(A2:A / 5)
。这是我的非工作尝试:
max(An, 0)
=arrayformula(max(A2:A / 5, 0))
本身在不使用max
的情况下可以正常工作,即如果我向所有行填充arrayformula
,我就会得到我想要的内容。我希望max(A2 / 5, 0)
函数对两个单值进行操作,A n 中的单个值和常量0. max
方法不起作用的原因是arrayformula
“窃取”范围,将整个范围max
聚合为一个数字。因此,A2:A
仅对此数字进行操作,并完全忽略范围arrayformula
,从而为所有单元格生成相同的值。
如何使A2:A
解释范围arrayformula
,或者更确切地说,如何阻止A2:A
函数执行此操作并使其对两个单值进行操作?
(我可以用max
函数解决问题,但这似乎并不特别优雅,需要大量的代码重复,特别是因为我的真正问题是使用更多涉及的算术和{{{{ 1}}和if
。)
答案 0 :(得分:1)
MAX是一个聚合函数:这些函数对一组值执行计算并返回单个值。您可能想要检查这是否有效(假设您在col A中的值)
=ArrayFormula(if(len(A2:A),--(A2:A/5>0)*(A2:A/5),))
答案 1 :(得分:0)
您有两种选择:
=arrayformula(if(A2:A>0,A2:A/5,0))
和
=arrayformula(filter(A2:A,A2:A>0)/5)
当有负数时,第一个选项会给零。第二个选项将跳过零,因此您最终可能会使用较短的数组。