= if () função não está funcionando como deveria ser


1

Estou tentando usar um IF função em uma fórmula em MS Excel 2013 , mas toda vez que o IF função ignora a condição que eu escrevi e vai para o valor verdadeiro. Eu chequei meu IF declaração mais e mais, e eu não vejo nada de estranho ou errado.

Esta é a equação que usei:

=IF(F17>0,(ABS(D17)/100*G16)+G16,(G16-((ABS(D17)/100)*G16)))

Primeiro, verifica o valor de F coluna para ver se é maior ou menor que 0, então faz algumas contas com base no IF sendo verdadeiro ou falso.

O problema é que sempre calcula o valor verdadeiro mesmo se o F17 contém um número negativo.


... F17 faz referência ao célula F17, não a coluna inteira.
Bob

Eu sei que eu acabei de escrever essa equação como um exemplo, mas no documento é como F1, F2, F3, F4, ....., etc
faisal60

@ faisal60 você poderia postar uma captura de tela (de alguns valores fictícios se a informação for sensível)?
Jerry

1
Isso está funcionando para mim. Coloquei alguns valores fictícios e usei o teste =IF(F17>0,"F17 > 0","F17 < 0") e funcionou como pretendido. A fórmula atual mudou positivo / negativo quando verdadeiro / falso.
Nathan C

2
Isso não é exatamente programação, mas esta regra se aplica de qualquer maneira: Selecione não está quebrado .
gronostaj

Respostas:


4

Solucione a fórmula passo a passo. Comece com um simples

= SE (F1 & gt; 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 um texto parecido com números.

enter image description here


1
É ainda mais fácil que isso. Na guia Fórmulas, selecione Avaliar Fórmula. Ele guiará você pela fórmula para que você possa ver onde está o erro.
wbeard52

2

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 sempre avaliará para TRUE.

enter image description here

A solução é usar o VALUE() função na sua fórmula.

enter image description here

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, cuidado com o fato de que algumas das outras células que você referencia pode conter também números formatados em texto, então ajuste de acordo.


1

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 adivinha:

=G16 + SIGN(F17) * ABS(D17)/100 * G16

1

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.


1
Bem vindo ao Super Usuário. Aqui temos uma política de não incluir assinaturas no conteúdo que você publica. Você poderia editar estes fora?
Ferrybig
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.