Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

tratar divisão por 0

Olá pessoal, boa tarde!
Sei que deve ser simples, mas não estou conseguindo fazer.
Fiz uma fórmula para calcular o % de crescimento de um ano para o outro.
Por exemplo 2011 versus 2010.

A fórmula que fiz é a seguinte:

Sum({$<ANO={$(=Only(ANO))}>}  QT_PRODUTO*PESO_LIQUIDO)

/

Sum({$<ANO={$(=Only(ANO)-1)}>} QT_PRODUTO*PESO_LIQUIDO)-1 .

Porém, se no ano anterior eu nao tive venda(peso) (valor 0), ele não está calculando o % de crescimento, que no caso deveria ser 100%.
Como posso tratar esta questão?

Obrigada,

Juliana.

1 Solution

Accepted Solutions
aderlanrm
Partner - Specialist
Partner - Specialist

Nesse caso, você deve usar a função ISNULL no IF.

Segue o mesmo raciocínio... IF(ISNULL(campo),0,campo)

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)

View solution in original post

4 Replies
aderlanrm
Partner - Specialist
Partner - Specialist

Olá Juliana,

Tenta isso:

Sum({$<ANO={$(=Only(ANO))}>}  QT_PRODUTO*IF(PESO_LIQUIDO=0,1,PESO_LIQUIDO))

/

Sum({$<ANO={$(=Only(ANO)-1)}>} QT_PRODUTO*IF(PESO_LIQUIDO=0,1,PESO_LIQUIDO))-1

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

Olá  Aderlan, bom dia!
Fiz parecido com o que você me passou, dá uma olhada:

if (  Sum({$<ANO={$(=Only(ANO)-1)}>}  FEXP_QT_PRODUTO*PESO_LIQUIDO)

      =0,

        1,

        (Sum({$<ANO={$(=Only(ANO))}>}  FEXP_QT_PRODUTO*PESO_LIQUIDO)

         / 

        Sum({$<ANO={$(=Only(ANO)-1)}>}  FEXP_QT_PRODUTO*PESO_LIQUIDO) -1)

    )  

Aparentemente funcionou certinho. Estou com outro probleminha agora e este tá complicado para resolver.

Estou  fazendo um comparativo de crescimento de preço médio praticado ( valor / peso) , porém tem clientes por exemplo, que não tiveram compra no ano atual ou anterior, então meu preço médio fica nulo para este cliente no ano.
O que você me sugere fazer para carregar um valor 0 nestes casos? Tentei com o IF, mas continua aparecendo NULO no campo.

Será que consigo  tratar isto na carga dos dados?


Veja o print.

preco_medio.jpg

Desde já agradeço,
Abraço,
Juliana.

aderlanrm
Partner - Specialist
Partner - Specialist

Nesse caso, você deve usar a função ISNULL no IF.

Segue o mesmo raciocínio... IF(ISNULL(campo),0,campo)

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

Aderlan, olá!
Funcionou certinho, muito obrigada pela ajuda!

Abraço,

Juliana.