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.
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.
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.
Em vez de verificar os operandos por negatividade, verifique o resultado.
=IF(I18-R18>0,I18-R18,R18-I18)
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.
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")))
Eu não sabia sobre o ABS. Eu ia sugerir
=SQRT((I18-R18)^2)
Tags microsoft-excel