Solucione a fórmula passo a passo. Comece com um simples
= SE (F1 > 0, VERDADEIRO, FALSO)
e copie para baixo. Se o resultado mostrar TRUE para todas as linhas, seus dados de origem serão o problema. Você pode ter texto que se parece com números.
Estou tentando usar uma função IF
em uma fórmula no MS Excel 2013 , mas toda vez que a função IF
ignora a condição que eu escrevi e vai para o valor verdadeiro. Eu verifiquei minha instrução IF
várias vezes, e não vejo nada estranho ou errado.
Esta é a equação que usei:
=IF(F17>0,(ABS(D17)/100*G16)+G16,(G16-((ABS(D17)/100)*G16)))
Primeiro, ele verifica o valor da coluna F
para ver se ele é maior ou menor que 0
, então faz algumas contas baseadas no IF
sendo verdadeiro ou falso.
O problema é que sempre calcula o valor verdadeiro mesmo se F17
contiver um número negativo.
Solucione a fórmula passo a passo. Comece com um simples
= SE (F1 > 0, VERDADEIRO, FALSO)
e copie para baixo. Se o resultado mostrar TRUE para todas as linhas, seus dados de origem serão o problema. Você pode ter texto que se parece com números.
Verifique se seus dados estão formatados como um valor numérico ou como texto. Se estiver formatado como texto, a comparação F17>0
será sempre avaliada como TRUE
.
AsoluçãoalternativaéusarafunçãoVALUE()
emsuafórmula.
No seu caso, você vai querer usar a seguinte fórmula:
=IF(VALUE(F17)>0,(ABS(D17)/100*G16)+G16,(G16-((ABS(D17)/100)*G16)))
Naturalmente, lembre-se de que algumas das outras células que você mencionou podem conter números formatados em texto, portanto, ajuste de acordo.
A complexidade desnecessária tende a dificultar as coisas. Para começar, você tem um par de parênteses que você não precisa. (E, a propósito, os espaços facilitam a leitura das coisas.)
↓ ↓
=IF(F17>0, (ABS(D17)/100*G16)+G16, (G16-((ABS(D17)/100)*G16)) )
é equivalente a
=IF(F17>0, (ABS(D17)/100*G16)+G16, G16-((ABS(D17)/100)*G16) )
Um rearranjo trivial produz
=IF(F17>0, G16 + (ABS(D17)/100*G16), G16 - ((ABS(D17)/100)*G16) )
e neste momento os termos comuns estão saltando da página. O acima pode ser simplificado para
=G16 + IF(F17>0, (ABS(D17)/100*G16), -((ABS(D17)/100)*G16) )
e, portanto, para
=G16 + IF(F17>0, 1, -1) * (ABS(D17)/100)*G16
e agora outro par de parênteses se torna redundante:
=G16 + IF(F17>0,1,-1) * ABS(D17)/100 * G16
E adivinhe:
=G16 + SIGN(F17) * ABS(D17)/100 * G16
O F17 pode não estar no formato numérico correto, sugiro que você escreva =VALUE(F17)>0
em algum lugar da sua planilha.
Se o resultado for falso, significa que seu número em F17 foi armazenado como um texto.