Entradas

Mostrando entradas de noviembre, 2024

Pegado especial. Operaciones: Sumar / Restar / Multiplicar / Dividir

Imagen
Si en algún momento necesitamos sumar / restar / multiplicar / dividir un rango de celdas por una cantidad dada directamente sin ayuda de una columna auxiliar con la fórmula apropiada (dependiendo de la operación aritmética elemental a realizar, obviamente) podemos hacer uso del “Pegado especial” ( Imagen 1 ) . Veamos cómo mediante un ejemplo ...   Imagen 1: Ventana “Pegado especial” (Control + Mayúsc + V) Supongamos que tenemos una serie de productos con sus precios ( Imagen 2 ) y queremos aumentar el precio respectivo un 2,5 % directamente sin fórmulas . Sabemos que para aumentar una cantidad en su 2,5 % tenemos que multiplicarla por 1,025 ( Imagen 3 ) . Imagen 2: Ejemplo … Productos y precios Imagen 3: Aumentar el precio un 2,5 % es multiplicar por 1,025  Pasos a seguir Escribimos en una celda vacía el número que queremos multiplicar, en nuestro caso 1,025. Seleccionamos esa celda y la copiamos. Ahora seleccionamos el rango de celdas con el que queremos operar ...

Copiar / Pegar celdas con fórmulas sin modificar las referencias relativas

Imagen
E n algún momento de nuestro trabajo con LibreOffice Calc habremos necesitado de copiar y pegar, pero deseando, por el motivo que sea, que no se actualizaran las referencias relativas contenidas en la celda o celdas copiadas. En esta entrada de este blog hablamos de las referencias: Referencias a celdas (relativas, absolutas, mixtas) . Para conseguir ese objetivo, c on un poco de astucia y maña, vamos a engañar a Calc echa ndo mano de " Buscar / Reemplazar " para, una vez seleccionadas las celdas a copiar, buscar el signo igual = y reemplazarlo por, por ejemplo, el signo de la arroba @ , siempre y cuando este signo no se encuentre en otra posición de la celda o, en caso contrario, podemos usar cualquier otro carácter con la condición de que no se encuentre en otro lugar de la celda o celdas a reemplazar ( Imagen 1 ) . Imagen 1: Ventana de Buscar/Reemplazar Para ver las fórmulas contenidas en las celdas en lugar del resultado de esas fórmulas pincharemos en el menú Ve...

Optimizar el tiempo de ejecución de una función personalizada (macro)

Imagen
H ay momentos en que nos interesa saber el tiempo que tarda en ejecutarse una función que hemos programado por si es posible optimizarla para que se ejecute en meno s tiempo. El lenguaje LibreOffice B asic nos aporta la función GetSystemTicks () que, de acuerdo con la Ayuda de LibreOffice Basic : “ Devuelve la cantidad de ticks del sistema proporcionados por el sistema operativo. Puede utilizar esta función para optimizar determinados procesos ”. Un “ tick ” tiene una duración aproximada de un milisegundo ( depend i e ndo del hardware ) . A las 00:00:00 de cada día se reinician los ticks del sistema, así que, el número devuelto (entero largo, long integer ) por esta función es, aproximadamente, el número de milisegundos transcurridos desde la medianoche pasada. En mi sistema (PC Windows 11 24H2 64 bits con 16 GB de RAM y procesador AMD Ryzen 5 1600 Six-Core Processor 3.20 GHz) , el ejemplo de la imagen 1 , tarda en ejecutarse una media de 200 6 ticks (he realizado varias medic...

Variaciones porcentuales

Imagen
C uando 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 E s 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 E s decir, por cada unidad hay 3 de diferencia (p odríamos llamarla variación relativ a ) . Pero, ¿ y por cada 100 unidades ? Exacto, a quí tendríamos la variación porcentual : 100 * ( AHORA – ANTES ) / ANTES = VARIACIÓN_POR_CADA_CIEN_UNIDADES 100 * (200 – 50) / 50 = 3 00 % ¡ Qué bien! ¡Qué fácil! Un momento, un momento, … Q ue no hemos terminado … ¿Por qué? Porque no hemos tenido en cuenta si el ANTES es igual a 0 (cero) o bien, ¿y ...