首页 > 解决方案 > 谷歌表格,数组公式

问题描述

所以我在这里有一个电子表格。这只是一个例子。

https://docs.google.com/spreadsheets/d/1-K8La5G2Gr1h_5_l72nuWLv-OGHETY9CqN66RiZ2Rro/edit?usp=sharing

目标是跟踪我的预算。

U 栏:费用清单 V 栏:以韩元为单位的费用价格。X 栏:相同的费用清单 Y 栏:以美元计的费用价格

我知道将 KRW 转换为 USD 我可以使用公式 =V6:V*GOOGLEFINANCE("CURRENCY:KRWUSD") 因为我想让它从 v6:v 开始,因为我在那里有总数。我可以将它应用到我单击的每个单元格或整列,但整列不起作用,因为我有 Y4 和 Y5 写入的数据。

同样看我是否输入费用的用途,例如如果我在 U8 上输入“restaurant”,“restaurant”将自动在 X8 上打印。同样的问题出现在如果我使用 =arrayformula(U6:U) 那么它将不起作用,因为我在 X4 和 X5 列中有数据。

L、M、N、O、P 和 Q 列是我想要的样子,但我必须复制和粘贴 L 和 O 列。并且必须单独选择单元格,复制并粘贴公式 =M7:M *GOOGLEFINANCE("CURRENCY:KRWUSD") 我只是想减少时间,我可以在适当的列中输入原始项目名称和成本,而发生转换的其他 2 列将自动发生而无需选择新单元格并复制并粘贴公式

标签: google-sheetsarray-formulasgoogle-sheets-formula

解决方案


你是对的 - 你需要ARRAYFORMULA,但它需要一些控制,否则它会将列复制到每个可用的单元格中。因此,您还希望ARRAY_CONSTRAIN限制显示公式的行数和列数(在您的情况下,只是行数)。

单元格 Y6:=array_constrain(arrayformula(round(V6:V*googlefinance("CURRENCY:KRWUSD"),2)),21,1)
数组是V6:V; 它乘以转换的值,并将其四舍五入到小数点后 2 位。该公式被限制在 21 行(表格的深度)和一列中显示。

单元格 W6:=array_constrain(arrayformula(round(Z6:Z/googlefinance("CURRENCY:KRWUSD"),2)),21,1)
与单元格 Y6 相同,不同之处在于 1) 数组 = Z6:Z,以及 2) 它将美元金额除以兑换率。

另外两个需要注意的单元格: 单元
格 V5:=D15-sum(V6:W26)
单元格 Y5:=G15-sum(Y6:Z26)
它们都对各自的货币列求和。

该表如下所示:


在此处输入图像描述


推荐阅读