我正在从具有多种证券(股票)买卖订单的交易系统导入数据。我需要汇总同一证券的买入订单和卖出订单,创建买入和卖出的股票总数,然后计算卖出和卖出的加权平均价格。消除多条线并保留总仓位。
列如下所示:
ID /交易日期/结算日期/路线 ID/股票代码/名称/国家/货币/操作/类型/规模/价格/经纪商/CUSIP/ISIN/SEDOL/佣金/外汇
因此,我需要根据操作和股票代码(即 MSFT 买入)对 Size 列求和,然后获得这些的加权平均值(例如,所有 MSFT“买入”执行)。
任何帮助将不胜感激。
答案1
假设 A 列 =ID
最简单的方法是使用 sumproduct 公式 -
=SUMPRODUCT(--(F:F="MSFT"),--(J:J="BUY"),M:M,L:L)/SUMIF(F:F,"=MSFT",L:L)
假设加权平均值为(Price*Size)/(Sum of all Sizes)
这不是 VBA 解决方案,但它很简单并且有效。