[英]How to calculate weighted average inside an ArrayFormula based on multiple row-criteria?
我一直在嘗試解決一個問題,但我還沒有弄清楚如何做到這一點。
基本上,我需要根據多個標准計算加權平均值。 該標准將從ArrayFormula
中檢索(這意味着我有具有不同標准值的列,並且我想使用ArrayFormula
根據該標准自動填充平均值)。
這是我在“主”表上的結構:主表結構
這就是我正在“搜索”的表:搜索表結構
“搜索”表的工作方式類似於平衡用戶所做的所有操作。 它包含所有購買和銷售,以及相應的價格和數量。
基本上,我需要用戶和股票代碼的購買價格加權平均值,其中價格是價值,數量是權重。 以上面的圖片為例:“計算屬於 example@example.com 的股票 ABEV3 的加權平均購買價格”。 但這必須使用ArrayFormula.
在實現ArrayFormula
之前,我成功地使用了查詢,但我發現在WHERE
子句上使用“Array”時QUERY
和ArrayFormula
不兼容。 我也嘗試使用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)))
( https://www.wallstreetmojo.com/average-vs-weighted-average/ )
所以,我設法做了一個解決方法。
我創建了另一張表來保存所有總和和分組查詢。
在該表上,我查詢了交易表兩次,一次用於買入操作,另一次用於賣出操作,並按用戶和股票代碼對它們進行分組。 結果是這樣的。
之后,一旦添加了事務,該表上的行就會自動更新,只需在該查詢間隔上執行VLOOKUP
即可。
為什么對我有好處? 因為我需要總數用於其他目的,這可以滿足這兩個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.