Una colección de funciones para hojas de cálculo de Google
¿Para qué sirve?
HdCPlus (HdC+) incorpora diversas funciones personalizadas y herramientas que en algún momento u otro he necesitado implementar en mis propias hojas de cálculo y que he acabado desparramando por aquí y allá, así que me he animado a juntarlas todas en este engendro. Si alguna de ellas te resulta de utilidad, ¡estupendo!
HdC+ es un desarrollo Apps Script gratuito y de código abierto. Fue uno de mis proyectos de aprendizaje cuando me iniciaba en Apps Script, así que no te tomes muy en serio su diseño e implementación.
instalación
HdC+ está disponible en dos versiones:
(A) Complemento para hojas de cálculo. Lo encontrarás en el Marketplace de Google Workspace. Puedes instalarlo siguiendo estas instrucciones generales.
(B) Plantilla. Solo tienes que hacer clic aquí para abrir la última versión disponible y, a continuación, pinchar en UTILIZAR PLANTILLA. ⚠️ Esta versión ya no se actualiza desde marzo de 2023.
Te recomiendo que escojas la primera opción. No solo te resultará más sencillo utilizar HdC+ en tus propias hojas de cálculo, sino que recibirás automáticamente las nuevas versiones publicadas.
DEscripción detallada e instrucciones de uso
HdC+ incluye en estos momentos las siguientes características, los resultados de cuya aplicación pueden deshacerse mediante el comando Editar → Deshacer.
Acondicionar texto en múltiples celdas: Eliminar caracteres especiales · Eliminar espacios / espacios tras comas / saltos de línea · Convertir comas en espacios / comas en saltos de línea / espacios a comas / espacios en saltos de línea / saltos de línea en espacios / saltos de línea en comas · Iniciales a mayúsculas · Inicial a mayúsculas · Todo a mayúsculas · Todo a minúsculas.
Ajustar casillas de verificación en bloque: Activar · Desactivar · Invertir estado.
Anotar celdas: Insertar notas en celdas con registro automático de fecha, hora y/o usuario.
Barajar datos: Desordenar por filas · Desordenar por columnas.
Estructurar datos: Consolidar dimensiones · Transponer rangos (preservando formato, notas y validación).
Gestionar hojas: Mostrar, ocultar o eliminar pestañas en bloque en función de su visibilidad o color · Ordenar pestañas alfabéticamente.
Insertar y eliminar filas/columnas: Eliminar celdas no seleccionadas · Eliminar filas y columnas no utilizadas en múltiples hojas · Insertar filas y columnas.
Generar datos falsos para demostraciones: Nombres · DNIs.
Ofuscar información: Recodificar texto en Base64 · Generar hash MD1/5 · Generar hash SHA-1/256/384/512.
Proteger celdas con fórmulas: Proteger o desproteger en bloque todas las celdas de la hoja que contengan fórmulas para evitar ediciones accidentales.
Y además, numerosas funciones personalizadas para tus fórmulas: BARAJARDATOSFIL · BARAJARDATOSCOL · BASE64 · DISTANCIA_EDICION · DISTANCIA_EDICION_MINIMA · HASH · HDCP_ACOPLAR · HDCP_CHOOSECOLS · HDCP_CONTARCOLOR · HDCP_DESACOPLAR · TROCEAR · UNPIVOT.
Atención: Los complementos instalados deben activarse de manera independiente en cada hoja de cálculo donde se deseen utilizar. Por tanto, para que las funciones personalizadas de HdC+ puedan ser empleadas en tus fórmulas, utiliza por primera vez cualquiera de los comandos del menú del complemento, por ejemplo Acerca de o simplemente actívalo en la hoja de cálculo correspondiente.
Sigue leyendo para saber más sobre cómo usar HdC+. Si prefieres algo más ligero, quizás quieras echarle un vistazo a este #hilotutorial.
Licencia y código fuente
HdC+ se distribuye bajo licencia GNU GPL v3. Puedes ver el código fuente en su repositorio de GitHub.
Soporte
Utiliza el formulario de contacto para hacerme llegar comentarios, sugerencias o plantear cualquier duda que te surja utilizando esta herramienta.
BARAJAR DATOS
Aunque el editor de hojas de cálculo ya incluye un comando de menú para ordenar aleatoriamente los datos de un intervalo, su funcionamiento se limita a alterar el orden de las filas de manera unitaria. HdC+ permite desordenarlos (barajarlos) tanto por filas como por columnas, perode manera independiente, es decir, fila a fila o columna a columna. Esta característica también puede utilizarse por medio de las funciones personalizadas BARAJARDATOSFIL() y BARAJARDATOSCOL().
AJUSTAR CASILLAS DE VERIFICACIÓN
Mediante estos dos comandos es posible activar o desactivar todas las casillas de verificación contenidas dentro del rango de celdas seleccionado. Realmente se consigue exactamente lo mismo simplemente arrastrando con el ratón para seleccionarlas y pulsando la barra espaciadora. No obstante HdC+ añade una tercera posibilidad, la de invertir su estado, así que por coherencia se mantienen las tres funciones dentro del menú del complemento. Se admite la selección múltiple de rangos disjuntos.
ESTRUCTURAR DATOS ➤ consolidar Dimensión
Realiza una consolidación dimensional de la información que se encuentra en varias columnas contiguas, agrupando sus valores en categorías. Esto suele facilitar la generación de paneles de análisis significativos. Aquí tienes una explicación más detallada del proceso. Esta característica también está disponible mediante la función personalizada UNPIVOT().
ESTRUCTURAR DATOS ➤ TRANSPONER
Realiza una transposición de las celdas contenidas en el rango seleccionado, intercambiando filas y columnas. A diferencia de la función integrada TRANSPONER, se preserva el formato (también condicional), notas y reglas de validación aplicadas previamente. Cuidado, este proceso es destructivo (aunque reversible deshaciendo cambios en la hoja de cálculo), dado que los datos transpuestos pueden sobreescribir el contenido de celdas anexas. En la actualidad, puedes conseguir prácticamente el mismo resultado usando el pegado especial con transposición nativa de las hojas de cálculo, aunque HdCPlus elimina el contenido de las celdas originales que cambian de lugar al transponer.
INSERTAR/ELIMINAR ➤ Eliminar celdas no seleccionadas
INSERTAR/ELIMINAR ➤ eliminar fIL/COL
Elimina de manera selectiva las filas y/o columnas situadas más abajo y a la derecha de las celdas con información. Eso no solo tiene ventajas estéticas, sino que puede contribuir a agilizar el funcionamiento de hojas de cálculo complejas en las que se empleen fórmulas matriciales con rangos infinitos. El panel de ajustes permite realizar la operación seleccionada sobre la hoja actual (de manera predeterminada) o sobre todas las de la hoja de cálculo.
INSERTAR/ELIMINAR ➤ Insertar fIL/COL
Se utiliza para insertar el número deseado de filas y/o columnas. La inserción puede hacerse a) al inicio de la hoja b) al final de la hoja c) antes de la celda actual d) tras la celda actual.
GESTIONAR HOJAS
Cuando las hojas de cálculo tienen muchas pestañas comienza a ser un problema ocultarlas o eliminarlas en bloque. En este submenú hay algunas funciones que pretenden resolverlo, al menos parcialmente. Destaca la posibilidad de mostrar, ocultar y eliminar hojas a cuyas pestañas se les haya aplicado previamente los colores azul [#0000ff], morado [#9900ff], verde [#00ff00],naranja [#ff9900] o rojo [#ff0000]situados en la primera fila del selector de colores. También se dispone de un acción para ordenar alfabéticamente todas las hojas.
GENERAR DATOS FALSOS
Permite generar nombres y apellidos (se recurre a una lista con los 200 más frecuentes en España) y NIFsficticios. Si se selecciona un rango de exactamente 3 columnas, primer apellido, segundo apellido y nombre se distribuirán adecuadamente en ellas. Ideal para construir tablas con datos personales (falsos) en formaciones o demos. No se garantiza que no aparezcan duplicados.Se admite la selección múltiple de rangos disjuntos.
OFUSCAR LA INFORMACIÓN
Sustituye el contenido de las celdas seleccionadas por sus hashes calculados, valores de longitud fija obtenidos a partir de los datos iniciales aplicando algoritmos de resumen MD2, MD5, SHA-1, SHA-256, SHA-384 o SHA-512 con recodificación a Base64 (representación más compacta) Esto permite enmascarar la información, mostrándola de manera diferenciada sin revelar el contenido original. También es posible recodificar el contenido de las celdas seleccionadas en Base64. Se pueden seleccionar varios rangos en una sola operación. Además, estas transformaciones también pueden efectuarse utilizando las funciones personalizadas BASE64() y HASH().
ACONDICIONAR EL TEXTO
Solo hay que seleccionar las celdas con el texto a transformar (se admiten múltiples rangos en una sola operación) y, a continuación, el comando de menú correspondiente. En el caso de la eliminación de caracteres especiales, se emplea una tabla de sustitución. Esta función puede resultar de utilidad, por ejemplo, a la hora de generar direcciones de email a partir de nombres y apellidos. También se dispone de numerosos comandos para realizar transformaciones de espacios, saltos de línea y comas.
Asimismo, se dispone de la función personalizada TROCEAR(). Y si necesitas ir un paso más allá, también cuentas con las funciones ACOPLAR() y DESACOPLAR(), que permiten consolidar o duplicar las filas de un intervalo de datos en función de los valores múltiples, separados por una secuencia de caracteres delimitadora arbitraria, presentes en una o más de sus columnas.
PROTEGER CELDAS CON FÓRMULAS EN BLOQUE
ANOTAR CELDAS
FX CONTARCOLOR / FORZAR recálculo
La función HDCP_CONTARCOLOR() es una pequeña excentricidad. En general no es buena idea utilizar el formato para codificar información en una hoja de cálculo, pero a mí me ha resultado práctico ocasionalmente en tablas de horarios. Esta función realiza un recuento o calcula la suma o el promedio de los valores de las celdas con un determinado color de fuente (texto) o celda (fondo). También puede simplemente devolverlos valores que cumplan la condición de color para que puedan ser utilizados en cualquier fórmula. El color puede expresarse en hexadecimal (#rrggbb) o por medio de la referencia a una celda cuyos atributos de color quieren emplearse como referencia.
Como la aplicación de formato no desencadena (afortunadamente) un recálculo de las fórmulas existentes, he añadido también el comando de menú Forzar recálculo de hoja, cuyo uso es necesariamente complementario a esta función.
FX CHOOSECOLSROWS
FX DISTANCIA DE EDICIÓN
Dos funciones personalizadas que permiten cuantificar las diferencias entre distintas secuencias de texto utilizando una variante de la distancia de Levenshtein (distancia de edición entre cadenas): DISTANCIA_EDICION() y DISTANCIA_EDICION_MINIMA().
POLÍTICA DE PRIVACIDAD / privacy policy
[ES] HdC+ ofrece diversas funciones adicionales a las disponibles en las hojas de cálculo de Google de manera predeterminada (ver detalles en el apartado anterior) que en ningún caso suponen el envío de correos electrónicos. HdC+ muestra paneles laterales dentro de la interfaz de las hojas de cálculo de Google para facilitar la introducción de datos por parte del usuario. HdC+ solo manipula los datos de las hojas de cálculo sobre las que se ha activado para realizar sus operaciones y nunca extrae ni almacena externamente información procedente de ellas. HdC+ no almacena ni comparte información del usuario. HdC+ no registra datos de uso, ni siquiera anónimos.
[EN] HdC+ provides users with several additional features not available in vanilla Google spreadsheets (check details in former section) that in no case imply the sending of e-mails. HdC+ shows side panels inside Google Sheets' user interface to ease data input. HdC+ only manages data inside the spreadsheets on which it has been activated to perform its operations and never extracts or stores any information from the data sheet elsewhere. HdC+ neither stores nor shares any user data. HdC+ does not collect any usage data, not even anonymously.
CONDICIONES DE USO / terms of use
[ES] Las herramientas que se facilitan han sido desarrolladas a título personal por el propietario de esta página web, que carece de todo objetivo o interés comercial, y son de uso libre y gratuito. Han sido probadas y utilizadas internamente previamente a su publicación y, en todo caso, se proporcionan a la comunidad de buena fe y tal cual, no asumiendo el autor responsabilidad alguna derivada de su uso sobre los datos de los usuarios que deciden emplearlas libremente.
[EN] The tools provided herein have been developed by the owner of this website, that is devoid of any commercial interests whatsoever, and are free and gratis. They have been tested and used internally before being published, and they are, in any case, provided to the community "as is" in good faith. The author does not assume any liability for their usage with the data of those users that freely elect to use them.