繁体   English   中英

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

[英]How to calculate weighted average inside an ArrayFormula based on multiple row-criteria?

我一直在尝试解决一个问题,但我还没有弄清楚如何做到这一点。

基本上,我需要根据多个标准计算加权平均值。 该标准将从ArrayFormula中检索(这意味着我有具有不同标准值的列,并且我想使用ArrayFormula根据该标准自动填充平均值)。

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

这就是我正在“搜索”的表:搜索表结构

“搜索”表的工作方式类似于平衡用户所做的所有操作。 它包含所有购买和销售,以及相应的价格和数量。

基本上,我需要用户和股票代码的购买价格加权平均值,其中价格是价值,数量是权重。 以上面的图片为例:“计算属于 example@example.com 的股票 ABEV3 的加权平均购买价格”。 但这必须使用ArrayFormula.

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

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

提前致谢!

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

尝试:

=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)))

0

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

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

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

在该表上,我查询了交易表两次,一次用于买入操作,另一次用于卖出操作,并按用户和股票代码对它们进行分组。 结果是这样的。

之后,一旦添加了事务,该表上的行就会自动更新,只需在该查询间隔上执行VLOOKUP即可。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM