Olá Senhores,
Eu tenho a seguinte tabela de dados:
DATA PRECO
14/01/2014 15,24
15/03/2014 16,52
15/06/2014 17,58
29/07/2014 18,56
15/07/2015 11,52
Essa tabela representa a data em que comprei uma certa ação X de uma empresa e por qual valor. E a seguinte tabela é uma tabela de correção desses valores:
DATA CORREÇÃO
20/02/2014 0,9791
15/05/2014 0,9985
06/06/2014 0,2000
29/08/2014 0,9878
15/05/2015 2,0000
Essa tabela representa as correções que devem ser feitas aos preços de compra devido a eventos ocorridos com a ação, como o pagamento de dividendos, juros sobre capital próprio, desdobramentos, agrupamentos e etc. A segunda coluna é o valor no qual eu devo multiplicar o preço para que a correção possa ser considerada como realizada.
O problema:
O problema é que essa correção deve considerar a data em que o evento ocorreu e as correções só podem ser feitas se a compra ocorreu até a data de correção. Compras posteriores não são corrigidas porque essas correções já estão embutidas no preço da ação.
Por exemplo, para o evento que ocorreu na data 06/06/2014 na última tabela, eu tenho que aplicar ele a todas as compras que ocorreram até essa data e não se aplica as compras que ocorram depois. Assim, eu somente iria multiplicar os preços R$ 15,24 e R$ 16,52 por esse valor. Seguindo essa lógica, a primeira compra, no dia 14/01/2014 seria multiplicada por todos os fatores de correção, mas a segunda já seria multiplicada somente do segundo pra frente, no exemplo dessa tabela. O resultado final seria a tabela abaixo:
DATA PRECO CORRIGIDO
14/01/2014 15,24 5,89 (=15.24*0.9791*0.9985*0.2*0.9878*2)
15/03/2014 16,52 6,52 (=16.52*0.9985*0.2*0.9878*2)
15/06/2014 17,58 34,73 (=17.58*0.9878*2)
29/07/2014 18,56 36,67 (=18.56*0.9878*2)
15/07/2015 11,52 11,52 (=11.52 porque foi comprado depois de os eventos terem ocorrido)
E foi aí que eu não consegui prosseguir. Não consegui escrever uma fórmula que faça essas correções automaticamente, a partir desses dados.
Os senhores teriam alguma pista/dica em relação a isso? Já se depararam com um problema semelhante?