Multiplicação condicional

Olá pessoal,

Tenho uma tabela no Calc que é utilizada para gerenciamento de capital, associado com a compra a venda de ações. Alguns eventos com ações requer que se façam certas correções nos preços dessas ações ou no número de ações que o acionista possui. A tabela a seguir é um exemplo:

Obs: Parece que em alguns lugares a imagem não é mostrada adequadamente. Eis o link dela: http://i.imgur.com/t5gJHm0.png

Essa correção é uma função da data. Assim, por exemplo, para as ações compradas depois antes do dia 19/02/2009, irão aplicar somente as correções devidas aos eventos depois dessa data e qualquer outro evento que tenha ocorrido antes (23/04/2009, por exemplo) não irá entrar nos cálculos.

A correção devida a cada evento é calculada linha a linha na tabela e os eventos antes da data especificada são ignorados. No presente caso, utilizei uma função chamado SOMARPRODUTO, que me permite especificar uma condição e operar com cada uma das linhas, conforme mostrado na fórnula. O problema é que eu não quero somar as correções e sim multiplicá-las. A fução MULT não tem a mesma flexibilidade da função SOMARPRODUTO e ainda existe o problema de que alguns termos serão 0 (zero), devido a condição colocada nessa função. No caso dela não há problemas porrque zero + valor = valor. Mas no caso de uma multiplicação, teremos zero*valor = zero.

Alguém teria alguma sugestão para resolver esse problema sem que eu tenha que recorrer a crianção de uma nova função para fazê-lo? Não consegui encontrar uma função que o faça e nem encontrei uma maneira de contornar isso.

Tem certas coisas que não podemos escapar. Creio que não entendi tão bem sua questão, mas veja se esta resposta a minha pergunta lhe pode ajudar.: Convertendo concatenação em fórmula. Penso que assim você poderia criar algumas condições com a função SE(); em UMA OU MAIS células, para que devolva uma string de fórmula, e ter uma fórmula mais exata com o conteúdo condicionado ou seja quando somar resolve ou quando o multiplicar resolve.

Bom trabalho!