Variaciones porcentuales
Cuando comparamos dos números (a los que llamaremos ANTES y AHORA) podemos saber cuántas unidades los separan simplemente restando al AHORA el ANTES, por ejemplo, si tenemos por un lado, AHORA = 200 y, por otro, ANTES = 50 sabemos que:
AHORA – ANTES = DIFERENCIA
200 – 50 = 150
Es decir, hay 150 unidades de diferencia. Podríamos llamarla variación absoluta. Pero, ¿y si queremos saber cuán grande o pequeña es esa diferencia con respecto al ANTES? Entonces calcularíamos:
(AHORA – ANTES) / ANTES = VARIACIÓN_POR_UNIDAD
(200 – 50) / 50 = 3
Es decir, por cada unidad hay 3 de diferencia (podríamos llamarla variación relativa). Pero, ¿y por cada 100 unidades? Exacto, aquí tendríamos la variación porcentual:
100 * (AHORA – ANTES) / ANTES = VARIACIÓN_POR_CADA_CIEN_UNIDADES
100 * (200 – 50) / 50 = 300 %
¡Qué bien! ¡Qué fácil! Un momento, un momento, … Que no hemos terminado … ¿Por qué? Porque no hemos tenido en cuenta si el ANTES es igual a 0 (cero) o bien, ¿y si hubieran números negativos implicados en las operaciones? Sabemos que la división por cero no está definida (el famoso error “#¡DIV/0!”) y, en el caso de valores negativos, es MAYOR el que tiene MENOR valor absoluto.
En la Imagen 1 tenemos una representación de la recta numérica real. En el centro el cero, a la izquierda los números menores que cero (negativos) y, a la derecha, los números mayores que cero (positivos). Observamos que si nos movemos de izquierda a derecha se produce un incremento (pasamos de un número más pequeño a uno más grande). Si lo hacemos de derecha a izquierda se produce un decremento o disminución (pasamos de un número más grande a uno más pequeño).
Imagen 1: La recta numérica real |
Estudiemos caso por caso hasta llegar a la fórmula que nos permita hallar la variación porcentual sin que Calc nos dé un ERROR.
Caso 1: AHORA y ANTES son números positivos, siendo ANTES menor que AHORA.
AHORA = 27; ANTES = 20
100 * (27 – 20) / 20 = 35 %
En la recta (Imagen 1) no movemos de izquierda a derecha, por tanto se produce un aumento del 35 %.
Resultado: CORRECTO.
Caso 2: AHORA y ANTES son números positivos, siendo ANTES mayor que AHORA.
AHORA = 20; ANTES = 27
100 * (20 – 27) / 27 = –25,93 %
En la recta (Imagen 1) no movemos de derecha a izquierda, por tanto se produce una disminución del 25,93 %.
Resultado: CORRECTO.
Caso 3: AHORA es un número negativo y ANTES es un número positivo.
AHORA = –20; ANTES = 27
100 * (–20 – 27) / 27 = –174,07 %
En la recta (Imagen 1) no movemos de derecha a izquierda, por tanto se produce una disminución del 174,07 %.
Resultado: CORRECTO.
Caso 4: AHORA es un número positivo y ANTES es un número negativo.
AHORA = 27; ANTES = –20
100 * (27 – (–20)) / (–20) = –235,00 %
En la recta (Imagen 1) no movemos de izquierda a derecha, por tanto se tendría que dar un aumento, no una disminución del 235,00 %.
Resultado: INCORRECTO.
Debemos modificar la fórmula:
100 * (AHORA – ANTES) / ANTES = VARIACIÓN_%
por
100 * (AHORA – ANTES) / ABS(ANTES) = VARIACIÓN_%
De acuerdo con la Ayuda de Calc:
ABS: Devuelve el valor absoluto de un número.
Sintaxis: ABS(Número). Número es el valor cuyo valor absoluto debe calcularse. El valor absoluto de un número es su valor sin el signo +/-. Ejemplos:
=ABS(-56) devuelve 56 =ABS(12) devuelve 12 =ABS(0) devuelve 0
Aplicando esta nueva fórmula tenemos:
100 * (27 – (–20)) / ABS(–20) = 235,00 %
Como hemos comentado antes, en la recta (Imagen 1) no movemos de izquierda a derecha, por tanto se produce un aumento del 235,00 %.
Resultado: CORRECTO (ahora sí).
Caso 5: AHORA y ANTES son números negativos con ANTES menor que AHORA.
Recordemos: Dado dos números negativos es MAYOR el que tiene MENOR valor absoluto. Y aplicamos la nueva fórmula que incluye el valor absoluto.
AHORA = –20; ANTES = –27
100 * (–20 – (–27)) /ABS (–27) = 25,93 %
En la recta (Imagen 1) no movemos de izquierda a derecha, por tanto se produce un aumento del 25,93 %.
Resultado: CORRECTO.
Caso 6: AHORA y ANTES son números negativos con ANTES mayor que AHORA.
Recordemos: Ver el recordatorio del caso 5.
AHORA = –27; ANTES = –20
100 * (–27 – (–20)) /ABS (–20) = –35,00 %
En la recta (Imagen 1) no movemos de derecha a izquierda, por tanto se produce una disminución del 35,00 %.
Resultado: CORRECTO.
Caso 7: AHORA y ANTES son cero.
AHORA = 0; ANTES = 0
100 * (0 – 0) /ABS (0) = #¡DIV/0!
En la recta (Imagen 1) no nos movemos hacia ningún lado, por tanto la variación es del 0,00 %.
Resultado: INCORRECTO (se produce el error de “división por cero”).
Tenemos que incorporar a nuestra fórmula una condición. Para eso Calc dispone de funciones condicionales, llamadas también funciones lógicas (ver la Ayuda de Calc).
¿Y qué hacen esas funciones lógicas/condicionales? Comprueban si se cumple o no una condición dada. Si el resultado es verdadero (TRUE) se cumple, y si es falso (FALSE) no se cumple. También se usan para realizar comparaciones lógicas entre expresiones que son verdaderas o falsas. Las funciones lógicas más comunes son: Y, O, NO y SI.
En este caso usaremos dos: SI e Y (por favor, visitad el enlace anterior a la Ayuda de Calc).
La nueva fórmula es:
=SI(Y(ANTES = 0 ; AHORA = 0) ; 0 ; 100 * (AHORA – ANTES) / ABS(ANTES))
Esta fórmula comprueba si ANTES y AHORA (obligatoriamente lo dos, por eso usamos la función Y) son iguales a cero. Si esa comparación es verdadera entonces devuelve cero y, en caso contrario, devuelve el resultado de la fórmula que veníamos utilizando. En este caso, ya no volverá a producirse el error “#¡DIV/0!”.
Resultado: CORRECTO (ahora sí).
Caso 8: AHORA es un número positivo y ANTES es cero.
AHORA = 20; ANTES = 0
=SI(Y(0 = 0 ; 20 = 0) ; 0 ; 100 * (20 – 0) / ABS(0))
Como la función Y(0 = 0 ; 20 = 0) es falsa (deben cumplirse todas y como 20 = 0 es falsa, el resultado es falso), entonces devuelve 100 * (20 – 0) / ABS(0), que es nuevamente el error “#¡DIV/0!”.
Resultado: INCORRECTO (se produce el error de “división por cero”).
Debemos introducir otra comparación/comprobación más:
=SI(Y(ANTES = 0 ; AHORA = 0) ; 0 ; SI(Y(ANTES = 0 ; AHORA <> 0) ; 100 * SIGNO(AHORA) ; 100 * (AHORA – ANTES) / ABS(ANTES)))
La función SIGNO devuelve el signo de un número, es decir, devuelve como resultado 1 si el signo es positivo y −1 si es negativo. Si el número es cero, la función devuelve cero.
En la recta (Imagen 1) nos movemos de izquierda a derecha, por tanto se tendría que dar un aumento. En este caso la variación real es un valor infinito (positivo). Acordamos asignarle el valor de 100 % (como el signo algebraico de AHORA es positivo, se produce un aumento del porcentaje acordado.
Resultado: CORRECTO (ahora sí, teniendo en cuenta el acuerdo de asignarle un 100 %).
Caso 9: AHORA es un número negativo y ANTES es cero.
AHORA = –20; ANTES = 0
=SI(Y(0 = 0 ; –20 = 0) ; 0 ; SI(Y(0 = 0 ; –20 <> 0) ; 100 * SIGNO(–20) ; 100 * (–20 – 0) / ABS(0)))
Como se cumple la segunda función Y, devuelve 100 * SIGNO(–20).
En la recta (Imagen 1) nos movemos de derecha a izquierda, por tanto se tendría que dar una disminución. En este caso la variación real es un valor infinito (negativo). Acordamos asignarle el valor de –100 % (como el signo algebraico de AHORA es negativo, se produce una disminución del porcentaje acordado.
Resultado: CORRECTO (teniendo en cuenta el acuerdo de asignarle un –100 %).
Resumen final.
Todos los casos anteriores los podemos ver en la imagen siguiente. La fórmula final empleada para evitar errores, referenciada a la fila 2 del archivo descargable y de la Imagen 2, es:
=SI(Y(C2=0;B2=0);0;SI(Y(C2=0;B2<>0);100*SIGNO(B2);100*(B2-C2)/ABS(C2)))
Siendo B2 = AHORA y C2 = ANTES.
Lo tenemos reflejado en la columna E del archivo descargable y de la Imagen 2.
En el caso que le demos formato de porcentaje a las celdas que contienen la fórmula, entonces debemos eliminar la multiplicación por 100, quedando la fórmula de esta manera:
=SI(Y(C2=0;B2=0);0;SI(Y(C2=0;B2<>0);SIGNO(B2);(B2-C2)/ABS(C2)))
Lo vemos en la columna D del archivo descargable y de la Imagen 2.
Imagen 2: Resumen |
Ya lo dijo Platón: “El que aprende y aprende y no practica lo que sabe es como el que ara y ara y no siembra". Así que ya sabéis, haced caso y practicad, practicad, …, practicad y no os olvidéis de las copias de seguridad.
Como siempre, muchas gracias por vuestra atención y saludos cordiales.
LibreOffice Community versión 24.2.7 (X86_64 es-ES) Windows 11
Comentarios
Publicar un comentario