Fórmula para delta entre dois números

8

Estou tentando encontrar o delta entre dois conjuntos de números. Alguns números são positivos, outros negativos.

A utilização da seguinte fórmula funciona cerca de 99% do tempo:

=IF(I18<0,I18+R18,IF(I18>0,I18-R18))

No entanto, quando I18 e R18 são números negativos, preciso de I18-R18 . Eu tentei várias instruções IF AND , mas parece que não consigo acertar isso. Espero que alguém possa me guiar na direção certa.

    
por Dave 08.05.2018 / 16:39

5 respostas

53

Parece que você quer apenas a diferença (delta) entre I18 e R18 e quer que seja sempre positivo?

Esta fórmula fará isso:

=ABS(I18-R18)

Ele dará a resposta correta se I18 for positivo, negativo ou zero.

    
por 08.05.2018 / 18:15
6

Em vez de verificar os operandos por negatividade, verifique o resultado.

=IF(I18-R18>0,I18-R18,R18-I18)
    
por 08.05.2018 / 22:10
5

Vamos simplificar seu código original:

If X < 0:
    Z = X + Y

Else X > 0:
    Z = X - Y

Agora você diz isso quando X < 0 e Y < 0, você realmente quer que o resultado seja X - Y e não X + Y. OK.

If Y < 0:
   If X < 0:
      Z = X - Y
   Else:
      Z = X + Y
Else:
   If X < 0:
      Z = X - Y
   Else:
      Z = X + Y

Isso está escrito.

=IF(R18<0,IF(I18<0,I18-R18,I18+R18),IF(I18<0,I18-R18,I18+R18))

Como mencionado acima, você não tem um caso zero. Você pode alterar um dos comparadores LT / GT para LE / GE simplesmente adicionando um sinal de igual - dependendo de seus dados e lógica.

    
por 08.05.2018 / 17:44
3

Você pode usar o abaixo:

=IF(AND(I18<0,R18<0),I18-R18,IF(I18<0,I18+R18,IF(I18>0,I18-R18)))

A única falha que consigo ver com isto é, o que você faz em uma instância onde I18 = 0 , você não tem nada definido para isso.

De qualquer forma, se você deseja adicionar algo para essa instância, veja abaixo:

=IF(AND(I18<0,R18<0),I18-R18,IF(I18<0,I18+R18,IF(I18>0,I18-R18,"IF I18 = zero goes here")))
    
por 08.05.2018 / 16:46
1

Eu não sabia sobre o ABS. Eu ia sugerir

=SQRT((I18-R18)^2)

    
por 09.05.2018 / 08:58