Estou tentando encontrar o delta entre dois conjuntos de números. Alguns números são positivos, outros negativos.
O uso da seguinte fórmula funciona em 99% das vezes:
=IF(I18<0,I18+R18,IF(I18>0,I18-R18))
No entanto, quando I18
e R18
são números negativos, eu preciso I18-R18
. Eu tentei várias IF
AND
declarações, mas simplesmente não consigo entender isso direito. Espero que alguém possa me guiar na direção certa.
microsoft-excel
Dave
fonte
fonte
I18
for zero.I18
eR18
são números negativos, eu precisoI18-R18
" Tem certeza de que está falando sério? Eu pensei que você queria o delta como uma diferença absoluta. SeI18
é-2
eR18
é-1
, seu resultado será-1
. Você não quer um número positivo em todos os casos?=ABS(I18)-ABS(R18)
produzir o resultado desejado?A+B
se A e B forem zero.Respostas:
Parece que você só quer a diferença (delta) entre
I18
eR18
, e você quer que ela seja sempre positiva?Esta fórmula fará o seguinte:
=ABS(I18-R18)
Dará a resposta certa
I18
, positiva, negativa ou nula.fonte
IF()
funcionar corretamente. As outras respostas abordaram a pergunta que foi feita. Mas, às vezes, seguir um caminho diferente o levará ao lugar certo mais rapidamente.Em vez de verificar se há negatividade nos operandos, verifique o resultado.
fonte
I18>R18
Vamos simplificar o seu código original:
Agora você diz que, quando X <0 e Y <0, na verdade deseja que o resultado seja X - Y e não X + Y. OK.
Isso está escrito.
Como observado 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 dos seus dados e lógica.
fonte
If Y<0 {A} Else {B}
mas A e B são idênticos. Existe um erro de digitação?Você pode usar o abaixo:
A única falha que posso ver com isso é: o que você faz em um exemplo em que
I18 = 0
você não tem nada definido para isso.De qualquer forma, se você deseja adicionar algo para essa instância, veja abaixo:
fonte
Eu não sabia sobre ABS. Eu ia sugerir
fonte
Isso funcionou para mim -> IF (AND (I18 <0, R18 <0), I18-R18, IF (I18 <0, ((R18-I18) * - 1), IF (I18> = 0, I18-R18 )))
Isso abrange todos os cenários: Variável A | Variável B + ve | + ve + ve | -ve -ve | + ve-ve | -ve
fonte
+
/-
) é trivial e não mostra nada para esclarecer sua resposta. Se você postar uma resposta para uma pergunta tão clara quanto essa, é útil explicar qual pergunta você acha que está respondendo. (2) O que quer que você esteja fazendo, sua fórmula parece desnecessariamente complexa. Explicar o que está fazendo seria útil. ……………………………………………… Por favor, não responda nos comentários; edite sua resposta para torná-la mais clara e completa.Acabei de encontrar uma situação (medindo as leituras de laboratório em cores) em que não preciso apenas da diferença entre x e y, mas do movimento delta positivo ou negativo. Então, normalmente -5 menos -2 = -3, mas querer mostrar que o delta estava realmente na direção positiva -3 não é o que estou procurando:
= SE (A1> B1, ABS (A1-B1) * - 1, ABS (A1-B1))
Simplificando, se a segunda leitura (mais recente) for menor, eu sei que o resultado é um movimento negativo (então * -1) e se moveu ainda mais para o lado negativo do eixo. Caso contrário, se a segunda leitura for maior, o valor puro do ABS funcionará sabendo que a diferença está na direção positiva.
fonte