我需要帮助,如何编写 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 个字符。