Estoy tratando de encontrar el delta entre dos conjuntos de números. Algunos números son positivos, algunos negativos.
Usar la siguiente fórmula funciona aproximadamente el 99% del tiempo:
=IF(I18<0,I18+R18,IF(I18>0,I18-R18))
Sin embargo, cuando I18
y R18
son números negativos, lo necesito I18-R18
. He intentado varias IF
AND
declaraciones, pero parece que no puedo hacerlo bien. Espero que alguien pueda guiarme en la dirección correcta.
microsoft-excel
Dave
fuente
fuente
I18
es cero.I18
yR18
son números negativos, necesitoI18-R18
" ¿Estás seguro de que quieres decir esto? Pensé que querías el delta como una diferencia absoluta. SiI18
es-2
yR18
es-1
, su resultado será-1
. ¿No quieres un número positivo en todos los casos?=ABS(I18)-ABS(R18)
Produce la salida deseada?A+B
si A y B son cero.Respuestas:
¿Parece que solo quieres la diferencia (delta) entre
I18
yR18
, y quieres que siempre sea positiva?Esta fórmula hará eso:
=ABS(I18-R18)
Le dará la respuesta correcta si
I18
es positivo, negativo o cero.fuente
IF()
funcionen correctamente. Las otras respuestas respondieron a la pregunta que se hizo. Pero a veces, tomar un camino diferente te llevará al lugar correcto más rápido.En lugar de verificar la negatividad de los operandos, verifique el resultado.
fuente
I18>R18
Simplifiquemos su código original:
Ahora dice que cuando X <0 e Y <0, en realidad desea que el resultado sea X - Y y no X + Y. OK.
Eso esta escrito.
Como se señaló anteriormente, no tiene un caso cero. Es posible que pueda cambiar uno de los comparadores LT / GT a LE / GE simplemente agregando un signo igual, dependiendo de sus datos y lógica.
fuente
If Y<0 {A} Else {B}
pero A y B son idénticos. ¿Hay un error tipográfico?Puedes usar lo siguiente:
El único defecto que puedo ver con esto es, ¿qué haces en una instancia en la
I18 = 0
que no tienes nada configurado para esto?De todos modos, si desea agregar algo para esa instancia, consulte a continuación:
fuente
No sabía sobre ABS. Iba a sugerir
fuente
Esto funcionó para mí -> IF (AND (I18 <0, R18 <0), I18-R18, IF (I18 <0, ((R18-I18) * - 1), IF (I18> = 0, I18-R18 )))
Esto cubre todos los escenarios: Variable A | Variable B + ve | + ve + ve | -ve -ve | + ve -ve | -ve
fuente
+
/-
) es trivial, y mostrarla no hace nada para aclarar su respuesta. Si va a publicar una respuesta a una pregunta tan poco clara como esta, es útil explicar qué pregunta cree que está respondiendo. (2) Sea lo que sea que esté haciendo, su fórmula parece innecesariamente compleja. Explicar lo que está haciendo sería útil. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... por favor no responda en los comentarios; edite su respuesta para que sea más clara y completa.Acabo de encontrarme con una situación (medición de lecturas de laboratorio de color) en la que no necesito simplemente la diferencia entre x e y sino el movimiento delta positivo o negativo. Entonces, normalmente -5 menos -2 = -3, pero querer mostrar que el delta estaba realmente en la dirección positiva -3 no es lo que estoy buscando, así que:
= SI (A1> B1, ABS (A1-B1) * - 1, ABS (A1-B1))
En pocas palabras, si la segunda lectura (más nueva) es más pequeña, sé que el resultado es un movimiento negativo (por lo tanto, * -1) y se ha movido más abajo en el lado negativo del eje. De lo contrario, si la segunda lectura es mayor, el valor ABS puro funciona sabiendo que la diferencia está en la dirección positiva.
fuente