如何根据多个行条件计算 ArrayFormula 内的加权平均值?

问题描述 投票:0回答:2

我一直在努力解决一个问题,但我还没有想出如何去做。

基本上,我需要根据多个标准计算加权平均值。该标准将从

ArrayFormula
中检索(这意味着我有具有不同标准值的列,并且我想使用
ArrayFormula
根据该标准自动填充平均值)。

这是我在“主”表上的结构:Main Table Structure

那是我正在“搜索”的表格:Search Table Structure

“搜索”表就像一个天平,包含用户所做的所有操作。它包含所有买卖,以及相应的价格和数量。

基本上,我需要按用户和股票代码加权平均的购买价格,其中价格是价值,数量是权重。以上图为例:“计算属于 [email protected] 的代码 ABEV3 的加权平均购买价格”。但这必须迭代到每一行,使用

ArrayFormula.

在实施

ArrayFormula
之前,我成功地使用了查询,但我发现在
QUERY
子句上使用“数组”时,
ArrayFormula
WHERE
不兼容。我也尝试使用
SUMPRODUCT
,将它与
FILTER
配对,但它返回大小不匹配错误。

重要提示: 在“主”表上,不同用户可以使用相同的代码,但同一用户的两次代码不能相同。它像数据库中的复合主键一样工作。

提前致谢!

我的工作表副本可在此处获得。

google-sheets average google-sheets-formula array-formulas google-sheets-query
2个回答
0
投票

尝试:

=ARRAYFORMULA(IFNA(VLOOKUP(A2:A&B2:B; QUERY(FILTER({
 'Transactions - Variable Income'!A2:A&'Transactions - Variable Income'!B2:B\ 
 'Transactions - Variable Income'!D2:D*'Transactions - Variable Income'!E2:E}; 
 'Transactions - Variable Income'!C2:C="buy"); 
 "select Col1,avg(Col2) group by Col1"); 2; 0)))

https://www.wallstreetmojo.com/average-vs-weighted-average/


0
投票

所以,我设法做了一个解决方法。

我创建了另一个表来保存所有总和和分组查询。

在那张表上,我查询了两次交易表,一次用于买入操作,另一次用于卖出操作,按用户和代码对它们进行分组。结果类似于this.

在那之后,一旦添加了事务,该工作表上的行就会自动更新,这只是在该查询间隔上执行

VLOOKUP
的问题。

为什么它对我有好处? 因为我需要总计用于其他目的,这满足了这两个问题。

© www.soinside.com 2019 - 2024. All rights reserved.