= 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.

faisal60
fonte
... 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

teylyn
fonte
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.

Excellll
fonte
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
Scott
fonte
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.

Do My EXCEL
fonte
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