带优先级的 Excel 电子表格平均值

带优先级的 Excel 电子表格平均值

我需要帮助,如何编写 Excel 公式(或任何 Excel 解决方案)来按优先级求和。

我有这样的交易数据:

Date  Unit  Price  Buy/Sell 
7/11   3     10     Buy 
7/12   2      9     Sell
7/13   4      8     Buy 
7/14   3     11     Sell

我想计算手头单位的平均购买价格,而不是所有购买单位的平均购买价格。我手头有 2 个单位,回想一下先进先出法,所以平均价格是 8 美元。

买入了 3 个单位@$10 和 4 个单位@$8,并且售出了前 5 个单位。

有什么方法可以在 Excel 中解决这个问题吗?

答案1

没有使用工作表函数来执行此操作的简单方法,因为您必须跟踪随时间变化的任意长度的购买价格列表。

假设单位数为正整数,我可以使用辅助列来实现。假设数据在 AD 列中,辅助列为 E。

在 E2 中,输入 =IF(D2="Buy",E1&REPT(C2&",",B2),MID(E1,1+FIND("*",SUBSTITUTE(E1,",","*",B2)),32767))

然后,最后一个单元格将包含一个文本字符串,您需要=AVERAGE()使用以下方法之一将其转换为公式https://stackoverflow.com/questions/4471884/turn-a-string-formula-into-a-real-formula

不幸的是,您可能会遇到单元格长度限制,即 32768 个字符。

相关内容