Fórmula =IF aceptando la diferencia de redondeo
Cmathieu
-
Usuario anónimo -
Usuario anónimo -
Hola,
Me gustaría poner una fórmula "IF" entre una celda 1 y una celda 2 con un mensaje de error si las 2 celdas son diferentes. El problema es que los datos de estas celdas pueden recibir números decimales, así que mis redondeos son iguales a la vista (porque solo se muestran 2 decimales en el documento) pero mi mensaje de error muestra una diferencia cuando en realidad la apariencia visual de mis 2 celdas es idéntica.
¿Cómo puedo hacer para que mi fórmula acepte una diferencia de decimales?
P.D.: También pensé en mostrar un mensaje de error cuando la celda 1 y la celda 2 tienen una diferencia de más de 0,1, pero eso me bloquea porque solo funciona en un sentido. A veces es la celda 1 la que es mayor en 0,10 y a veces es la celda 2.
Gracias de antemano por la ayuda,
Configuración: iPhone / Safari 9.0
Me gustaría poner una fórmula "IF" entre una celda 1 y una celda 2 con un mensaje de error si las 2 celdas son diferentes. El problema es que los datos de estas celdas pueden recibir números decimales, así que mis redondeos son iguales a la vista (porque solo se muestran 2 decimales en el documento) pero mi mensaje de error muestra una diferencia cuando en realidad la apariencia visual de mis 2 celdas es idéntica.
¿Cómo puedo hacer para que mi fórmula acepte una diferencia de decimales?
P.D.: También pensé en mostrar un mensaje de error cuando la celda 1 y la celda 2 tienen una diferencia de más de 0,1, pero eso me bloquea porque solo funciona en un sentido. A veces es la celda 1 la que es mayor en 0,10 y a veces es la celda 2.
Gracias de antemano por la ayuda,
Configuración: iPhone / Safari 9.0
Enlaces relacionados:
- fórmula de excel para la diferencia entre dos números
- fórmula para copiar el valor de una celda
- ¡Copia/pega el valor de una fórmula sin comas!
- Redondeo al 0.5 superior en una fórmula + condición
- Redondeo hacia arriba en una fórmula de suma
- Mensaje de error sistemático para la fórmula... : Excel 2016
2 respuestas
-
Hola
no se ve muy claro qué quieren comparar?
¿son los enteros sin tener en cuenta las decimales
¿son los redondeos a X decimales, superior, si o a lo más cercano?
en el primer caso, comparar los enteros:
=IF(INT(C1)=INT(C2);....;...)
para los redondeos:
=IF(ROUND(C1;2)=ROUND(C2;2);...;...)
para redondeo hacia arriba: ROUNDUP
para los inferiores: ROUNDDOWN
con el número de decimales a tener en cuenta aquí ;2)
y por último para admitir o no una diferencia entre los dos valores, lo que quizá sea lo mejor:
=SI(ABS(C1-C2)<x;/...;...)
que tendrá en cuenta el valor absoluto de la diferencia, ya sea positiva o negativa
xxx siendo el valor de la diferencia que pueden admitir (0,1 o 0,001 etc..
saludos
La calidad de la respuesta depende sobre todo de la claridad de la pregunta, ¡gracias!-
Gracias por la respuesta.
Para ser más preciso: la casilla 1 = 12,5356. La casilla 2 = 12,5399. Como oculto mis cifras a dos decimales, tengo una visual: la casilla 1 = 12,53 y la casilla 2 = 12,53, por lo que la visual de las dos casillas es identica.
Por lo tanto, me gustaría que mi fórmula IF tenga en cuenta únicamente 12,53 (mis dos números después de la coma). Y en ese caso que la fórmula indique que mi resultado es correcto porque la casilla 1 y la casilla 2 son iguales a 12,53.
Espero haber sido más claro :)
Hola Cmathieu, Vaucluse tiene razón:
ROUND(12.5356,2) devuelve 12.53
ROUND(12.5399,2) también devuelve 12.53
Por lo tanto la comparación de ambos valores será exacta y IF() devolverá TRUE.
Pero lee primero mi mensaje #2 cuyo enlace te será seguramente útil:
podrías no tener que modificar ninguna fórmula ! ????
- Hola
no es exactamente como tus ejemplos Albkan, porque
___ ROUND(12.539,2) devolverá 12,54 (a partir de 12,536)
___ ROUND(12.531 devolverá 12,53
si solo queremos tener en cuenta la parte decimal visible en lugar de la diferencia real entre los dos valores hay que usar:
ROUNDDOWN(Cell;2) que devolverá siempre las 2 decimales inferiores (o ROUNDUP para las superiores, lo que equivale a lo mismo)
Pero para eliminar una diferencia de menos de 0,01 sin importar el entero, la siguiente es suficiente
=IF(ABS(C1-C2)<0.01;"OK";"")
crdlmnt
Este mensaje también es para Cmathieu.
Hola Vaucluse,
Lo que escribiste es totalmente correcto: olvidé hacer el redondeo
del 2º dígito después de la coma según el 3º; así, para mis
dos ejemplos, en lugar de 12,53, habría debido escribir 12,54 :
ROUND(12.5356,2) devuelve 12.54
ROUND(12.5399,2) devuelve 12.54 también
Y como indicaste:
ROUND(12.539,2) devuelve 12.54
ROUND(12.531,2) devuelve 12.53
----------------------------------------------------------
Sigo pensando de todos modos que sería mucho
más sencillo para Cmathieu usar en su Excel en inglés
el equivalente en francés de este parámetro:
Con Excel 2007
botón Office (= menú Archivo), Opciones de Excel, pestaña Opciones avanzadas,
desplazarse hacia abajo hasta ver esta sección (barra azul) :
« Al calcular este libro: »
☑ Definir el cálculo con la precisión al formato mostrado
Con Excel 2003
menú Herramientas / Opciones... ; pestaña Cálculo :
☑ Cálculo con la precisión al formato mostrado
----------------------------------------------------------
Los cálculos siempre se realizan con la precisión máxima de 15 cifras
después de la coma, y luego, para un formato de 2 cifras después de la coma, el redondeo
se hace según el 3º, y el resultado se almacena internamente y se muestra con
solo esas 2 cifras después de la coma. Pero atención: el parámetro
anterior se aplica al libro completo (por lo tanto, para todas las hojas).
Si este redondeo automático no se desea para una de las hojas,
no hay que utilizar este parámetro y usar las funciones de redondeo.
Atentamente. ????
-
-
-
Hola Cmathieu,
Creo que esta solución de Patrice33740 podría ayudarte. 😊
Pero tendrás que encontrar la correspondencia en tu Excel en inglés.