Código VBA do Excel 2007 para agregar dados com base nas condições e calcular uma média ponderada

1

Estou importando dados de um sistema de negociação que tem ordens de compra e venda de vários títulos (ações). Preciso agregar os mesmos pedidos de compra de títulos e as mesmas ordens de venda de títulos, criando um número total de ações compradas e vendidas e, em seguida, calculando um preço médio ponderado para a venda e a compra. Eliminando as múltiplas linhas e mantendo as posições agregadas.

As colunas são assim:

ID / Data de Troca / Data de Liquidação / ID de Rota / Ticker / Nome / País / Moeda / Ação / Tipo / Tamanho / Preço / Corretor / CUSIP / ISIN / SEDOL / Comissão / FX

Portanto, preciso somar a coluna Tamanho com base na Ação e no Ticker (ou seja, compra de MSFT) e, em seguida, obter uma média ponderada dessas (todas as execuções de "Comprar" da MSFT, por exemplo).

Qualquer ajuda seria muito apreciada.

    
por Eric R 11.02.2014 / 02:34

1 resposta

0

Supondo que a coluna A = ID , a maneira mais simples de fazer isso é com uma fórmula sumproduct -

=SUMPRODUCT(--(F:F="MSFT"),--(J:J="BUY"),M:M,L:L)/SUMIF(F:F,"=MSFT",L:L)

Isso pressupõe que uma média ponderada seja (Price*Size)/(Sum of all Sizes)

Esta não é uma solução VBA, mas é simples e funciona.

    
por 11.02.2014 / 15:09