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


Se puede descargar el archivo de prácticas aquí.

Comentarios

Entradas populares de este blog

Calcular el día del año de una efeméride

Celdas enlazadas (Datos ► Validez...)