Excel 2007 VBA 代码根据条件聚合数据并计算加权平均值

Excel 2007 VBA 代码根据条件聚合数据并计算加权平均值

我正在从具有多种证券(股票)买卖订单的交易系统导入数据。我需要汇总同一证券的买入订单和卖出订单,创建买入和卖出的股票总数,然后计算卖出和卖出的加权平均价格。消除多条线并保留总仓位。

列如下所示:

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 解决方案,但它很简单并且有效。

相关内容