google-sheets - Google表格:将公式复制到列中的所有单元格
问题描述
当我将公式添加到谷歌工作表时,它们工作正常,但是当我添加新行时,公式不会被复制。为了克服这个问题,我找到了公式数组公式。这适用于简单的应用程序,例如在单元格 D4 中添加了以下公式
=ARRAYFORMULA(if(isblank(B4:B), ,B4:B*C4:C))
但是,当公式稍微复杂一点时,它就会崩溃。
=ARRAYFORMULA(if(and(isblank(B4:B),isblank(C4:C)), ,B4:B*C4:C))
这仍然是一个非常简单的公式,似乎会出错,而我工作表中的公式通常要复杂得多,例如
=if(Y5="","",filter('World Clock'!B:B,'World Clock'!A:A=Y5))
它读取单元格 Y5 的数据(这是我手动输入的时区的名称)并查找另一个名为“世界时钟”的工作表,其中包含这些时区中当前时间的时区和公式列表并复制该公式到这张表。
有谁知道任何公式可以让这个工作?我知道有一种方法可以通过脚本来做到这一点,我相信我自己可以解决这个问题,但是如果我可以得到数组公式或类似的工作会更好,因为我已经有很多脚本在运行这个文件,它开始变慢了。
解决方案
AND()
并且OR()
不起作用,ARRAYFORMULA()
因为它AND()/OR()
在整个数组中执行方法。
如果你想对每个数组进行 AND/OR。使用* = AND()
或+ = OR()
代替。
例子:
和: =ARRAYFORMULA(if(isblank(B4:B)*isblank(C4:C),,B4:B*C4:C))
或者: =ARRAYFORMULA(if(isblank(B4:B)+isblank(C4:C),,B4:B*C4:C))
输出:
(更新)
如果你想ARRAYFORMULA()
在你的FILTER()
公式中应用,你可以在试用表中使用这个公式A2
=ARRAYFORMULA(if(B2:B="","",Vlookup(B2:B,'World Clock'!A:B,2,false)))
注意:您需要删除
A3
以后添加的其他公式,因为它会阻止 arrayformula() 单元格写入。
推荐阅读
- vim - “i”和“t”标签有什么区别?在 VIM 编辑器中?
- rdf - 为 GraphDB 工作台导入预处理 .rdf 的工具?
- nest-device-access - 设备访问身份验证“未找到合作伙伴连接”
- c# - 为什么将对象设置为子对象时,他的位置和旋转从未设置为 0,0,0?
- python - Python statistics.median() 返回“StatisticsError:空数据没有中位数”,尽管给出了 20 个项目的列表
- c - 指向打印 null 的字符串的指针数组
- wordpress - wp_list_pages 和页面层次结构的问题
- node.js - 从 epxress 请求对象访问锚定令牌
- arrays - 从JSON中循环未知深度多维数组
- python - 倒计时计时器未在 tkinter 中更新