Minigráficos y barras de progreso multicolor fáciles con SPARKLINE_BARRAS

 

Los minigráficos de barras, columnas y líneas que genera la función SPARKLINE de Google Sheets son fascinantes a más no poder. ¿Cómo? ¿Que no los conoces? No me lo puedo creer 😮. Eso lo vamos a solucionar ahora mismo...

En ese caso, lo primero que deberías hacer es leerte de cabo a rabo este tutorial de Ben Collins. ¡Qué digo tutorial, si es la madre de todos los tutoriales sobre esta versátil función! Parada obligada, sin ninguna duda, para descubrir todas sus posibilidades. Un clásico.

Y si quieres averiguar hasta dónde pueden llegar estos pequeños artefactos, no deberías dejar de echarle un vistazo a algunas de las plantillas recientes 🤯 del inagotable Max Makhrov.

Como a ellos, y modestamente, a mí también me cautivan estos artefactos hojacalcúlicos desde tiempo ha. De hecho, he hablado a menudo de ellos en X. Y una de las cosas para las que me parecen ideales es para representar barras de progreso o de vacío / lleno, si lo prefieres, como estas utilizadas para mostrar el número de plazas ocupadas y libres en uno de los encuentros de GEG Spain, concretamente el de Valencia 2019, si no me equivoco.

También los he utilizado en muchos proyectos, por ejemplo en esta pequeña biblioteca para gestionarlas desde Apps Script. O en esta calculadora de calificaciones altamente configurable.

Lo de calificar y tal cada vez está peor visto, pero lo cierto es que generalmente la normativa nos sigue obligando a hacerlo.

La enorme flexibilidad de la súper función SPARKLINE se torna paradójicamente en un posible inconveniente a la hora de utilizarla, puesto que dispone de numerosos modos de funcionamiento y su sintaxis no es la cosa más natural del mundo. Por si fuera poco, esta función esconde alguna que otra característica poco o nada documentada.

Por esa razón, e inspirado por el enorme trabajo de Ben y Max, me he animado a crear SPARKLINE_BARRAS, la función con nombre que hoy te presento y que naturalmente ya puedes encontrar en mi...

🧰 Kit de funciones con nombre para Google Sheets 🧰
👉 bit.ly/kitfuncioneshdc-pfelipm 👈

¿Te gusta lo que ves? Se trata del entorno de pruebas de SPARKLINE_BARRAS.

¿Por qué un kit de funciones con nombre? La respuesta corta no es otra que «porque me apetecía». La larga la vas a encontrar en esta publicación previa.

Debo decirte aquí y ahora que este artículo nace como material complementario a la documentación de referencia de SPARKLINE_BARRAS que encontrarás en mi kit. En esta guía de uso:

  • Te cuento qué hace especial a esta función.
  • Te explico de manera pormenorizada para qué sirve cada uno de sus argumentos, nada menos que once, aunque afortunadamente solo uno de ellos (el primero) es obligatorio.
  • Te proporciono un entorno de pruebas para que te familiarices rápidamente con sus capacidades.

SPARKLINE_BARRAS es un envoltorio para la función nativa SPARKLINE diseñada para facilitar la generación de minigráficos de barras y columnas multicolor.

La función con nombre que te presento ahora trata de ocultar la complejidad propia de la función SPARKLINE. Al mismo tiempo, pretende simplificar su uso, incorporando una lógica que ajusta de manera predeterminada ciertos argumentos de la función para dar cobertura a varios escenarios que en mi opinión son bastante frecuentes.

Y además, esconde cierta magia 🎩🐰 que tal vez aún no conocías.

La función con nombre SPARKLINE_BARRAS en acción.

En lo que sigue te voy a mostrar, paso a paso y con numerosos ejemplos, todo o casi todo lo que puedes hacer con SPARKLINE_BARRAS. ¿Estás listo?

 

TABLA DE CONTENIDOS

Minigráficos de barras

Adoro los minigráficos generados mediante la función nativa SPARKLINE, eso ya lo he dicho. Me parecen bonitos, limpios, elegantes e informativos. En una palabra, resultones, especialmente los de barras (horizontales). Y es aquí donde reside el fuerte de mi función con nombre SPARKLINE_BARRAS.

Te muestro a continuación diferentes casos de uso, comenzando por el más simple e inmediato.

Barras rápidas sin argumentos adicionales

En su forma de uso más simple e inmediata, la función tan solo precisa del primer argumento  «valores», para producir un minigráfico con una barra de color azul.

SPARKLINE_BARRAS, en su versión más básica.
[A2] =SPARKLINE_BARRAS(75;;;;;;;;;;)

☝ Las funciones con nombre no disponen aún de un mecanismo que permita omitir completamente los argumentos que no se desea indicar de manera explícita, por lo que aunque pueden diseñarse de manera que se comporten de un modo parecido (te cuento cómo en mis artículos anteriores sobre funciones con nombre), no queda otra que introducir repetidamente el carácter separador habitual [;] para saltarlos.

Como puedes apreciar, este modo de uso no sirve para gran cosa. La barra generada se extiende a lo ancho de la celda completa, con independencia del valor representado, puesto que por defecto se utiliza como valor máximo el del conjunto de datos suministrados en su primer argumento. Y claro, solo tenemos un valor, justo ese con el que estamos alimentando a la función 🤡.

Pero a diferencia de la función nativa, SPARKLINE_BARRAS es capaz de generar múltiples minigráficos de barras con una sola fórmula, sin obligarte a recurrir a las por otra parte molonas funciones auxiliares Lambda. Para ello, solo tienes que facilitarle un vector fila o columna o también una matriz de valores de dimensiones arbitrarias.

Entra una columna de valores, sale una columna de barras.
[A2] =SPARKLINE_BARRAS({75;34;90};;;;;;;;;;)
Entra una matriz de valores, sale una matriz de barras.
[A2] =SPARKLINE_BARRAS({75\7;34\12;90\76};;;;;;;;;;)

Esto ya tiene más sentido, ¿verdad? En ausencia de un valor máximo de referencia, la función tomará el máximo del conjunto de datos de entrada (90 en estos dos ejemplos).

Definiendo un valor máximo personalizado

Eso es tan fácil como utilizar el argumento  «maximo» (lo escribo aquí sin tilde para que coincida con su nombre tal y como aparece en la ayuda contextual de la función):

La importancia de conocer los límites.
[A2] =SPARKLINE_BARRAS({75\17;34\12;90\76};;;;;100;;;;;)

En este caso he utilizado un previsible valor de 100. Observa como la barra de la celda A4, que en la última imagen del apartado anterior rellenaba completamente la celda con un valor de 90, ahora no alcanza sin embargo su extremo derecho.

No obstante, si la función detectara que alguno de los valores a representar excediera del máximo indicado lo utilizaría como valor de referencia, ignorando entonces el establecido por el usuario.

☝ Tanto si el valor máximo de referencia ha sido determinado de manera automática como si se ha introducido manualmente, se aplicará a todos los minigráficos generados por una misma fórmula. Si prefieres que se utilice un valor máximo diferente para cada uno de ellos, tendrás que generarlos mediante fórmulas independientes.

Las barras de progreso son lo más

Si hay algo que me parece más tranquilizador que una interminable y uniforme rejilla de celdas en una hoja de cálculo (de Google, naturalmente 😏) es una interminable y uniforme rejilla de celdas con barras de progreso. Esta función está concebida desde el minuto uno como una herramienta para facilitar su generación.

Por esa razón, de manera predeterminada todas las barras muestran un segmento de color gris, como de fondo o en segundo plano, que denota un área por rellenar, a continuación de la barra de color de anchura proporcional a la magnitud representada y hasta el extremo derecho de la celda, que es donde queda el valor máximo de referencia. 

Naturalmente, puedes establecer con total libertad los colores de ambos segmentos del minigráfico utilizando, como en la función nativa, valores hexadecimales válidos (con o sin la # inicial) o cualquier nombre de color CSS.

Esto se va poniendo interesante...

Por ejemplo:

[A7] =SPARKLINE_BARRAS(55;"LightSalmon";;;;100;"PeachPuff";;;;)

Experimenta con los argumentos  «colores» (segmento de la barra proporcional a la magnitud representada) y «color_fondo» (segmento hasta el valor máximo de referencia) para lograr el efecto cromático que prefieras.

Al igual que ocurría con el argumento «maximo», utiliza fórmulas independientes, en lugar de una única fórmula alimentada por una matriz de valores, para diferenciar tus barras mediante colores.

También puedes hacer coincidir el color de segundo plano de la barra con el utilizado en el fondo de la celda para generar minigráficos de barras convencionales, exentas de ese carácter visual típico de las barras de progreso.

[A8] =SPARKLINE_BARRAS(55;"RoyalBlue";;;;100;"White";;;;)

¿Y qué pasa con los valores negativos?

Nada malo, por supuesto. La barra de color se dibujará en ese caso de derecha a izquierda, como si el origen de coordenadas  —el 0 del eje X —  estuviese situado en el extremo derecho de la celda.

Barras simétricas con respecto a un eje vertical. O algo así.
[A2] =SPARKLINE_BARRAS(-75;;;;;100;;;;;)
[A5]
=SPARKLINE_BARRAS({-75\25};;;;;100;;;;;)

Esta característica de SPARKLINE_BARRAS abre interesantes posibilidades a la hora de comparar diferentes dimensiones relacionadas de un modo visualmente representativo.

¿Te gustan los juegos de rol ambientado en mundos de fantasía? A mí, mucho.
[A3] =SPARKLINE_BARRAS(ArrayFormula(-B3:B14);"LightSalmon";;;;15;;;;;)
[E3] =SPARKLINE_BARRAS(D3:D14;"LightSlateGrey";;;;15;;;;;)

Pero SPARKLINE_BARRAS es capaz de mucho más 😏...

Barras de colores dinámicos

En lugar de escoger un solo color para las barras puedes introducir un vector con un número arbitrario de colores. Por ejemplo:

{"DarkGrey" ; "Gold" ; "Orange" ; "Red"}

La función definirá automáticamente un vector que contendrá tantos umbrales porcentuales crecientes equiespaciados entre el 0% y el 100%, como colores se hayan enumerado en el vector previo, de modo que:

 0% < porcentaje  100%

En el caso del vector de 4 colores anterior:

{25% ; 50% ; 75% ; 100%}

El color utilizado finalmente en cada minigráfico se determinará a continuación en función del intervalo en el que se encuentra el valor representado con respecto al máximo utilizado como referencia.

Colores dinámicos en función de los valores representados.
[B2] =SPARKLINE_BARRAS(
A2:A10;
{"DarkGrey";"Gold";"Orange";"Red"};;;100;;;;;;VERDADERO)

También puedes definir libremente los intervalos porcentuales, como en el ejemplo que te muestro a continuación, por medio del tercer argumento de la funcion, «intervalos».

Intervalos de colores totalmente personalizados.
[B2] =SPARKLINE_BARRAS(
A2:A10;
{"Gold";"Red"};
{50%;100%};;100;;;;;;VERDADERO)

Fíjate en que cada valor porcentual que se ha indicado (50%, 100%) constituye el límite superior cerrado de un intervalo, es decir, incluyente por su extremo superior.

⚠️ Ten en cuenta en todo momento que el vector de colores y el de intervalos deben tener exactamente la misma longitud, de lo contrario la función devolverá un posiblemente un mensaje de error.

La definición de intervalos es no obstante bastante flexible y también pueden establecerse desde el 0%, debiendo evitarse entonces la inclusión en la lista de valores porcentuales del 100%, de modo que:

 0%  porcentaje < 100%

En ese caso, cada valor porcentual representará el límite inferior de un intervalo, que será excluyente por su extremo superior dado que la función interpretará cada uno de dichos intervalos como abierto por la derecha

¿Y esto para qué sirve? Bueno, lo primero que se me ocurre es representar las calificaciones de un conjunto de estudiantes, donde típicamente los intervalos que se utilizan para determinarlas funcionan de este modo.

Calificaciones con barras de color : rojo (insuficiente) amarillo (suficiente), azul (bien), verde (notable), púrpura (sobresaliente). 
[C3] =ArrayFormula(
HSTACK(
REPETIR(" ";5) & TEXTO(B3:B10;"0.00");
SPARKLINE_BARRAS(
B3:B10;
{"red";"orange";"blue";"green";"purple"};
{0%;50%;60%;70%;90%};;;10;;;;;)))

No he podido resistir la tentación de utilizar en el último ejemplo este interesante truco, que compartía recientemente Max Makhrov, para superponer las calificaciones numéricas sobre los propios minigráficos (tal vez debería añadir esta capacidad a SPARKLINE_BARRAS 🤔).

La idea feliz, que explota una característica no documentada, consiste en utilizar la función HSTACK y un puñado de espacios de relleno, cuidadosamente ajustados, como puedes ver en la fórmula que aparece en la parte superior de la última captura.

Para cerrar esta sección, solo decirte que tanto el vector de colores como el de parámetros pueden omitirse de manera independiente. El comportamiento de la función dependerá en esa circunstancia de ciertas reglas que encontrarás en la se documentación.

Paletas cromáticas predefinidas y barras multicolor

¡Esta es probablemente la característica estrella ❤️‍🔥 de SPARKLINE_BARRAS!

Como eso de ir escogiendo colores para las barras me daba un poco de pereza, he dotado a esta función de nada más y nada menos que trece paletas cromáticas predefinidas, cada una de ellas con una escala de cinco colores cuidadosamente seleccionados. 

☝ Recuerda que utilizar más de un color precisa de un número parejo de valores porcentuales en el argumento «intervalos» para que la función pueda determinar cuándo se utilizará cada uno de ellos en función de la magnitud del valor representado. Puedes introducir los valores porcentuales de este argumento de manera manual o dejar que la función los genere por sí misma, tal y como te he explicado en el apartado anterior.

Los identificadores numéricos y nombres de las 13 paletas de colores predefinidas en  SPARKLINE_BARRAS.

Puedes seleccionar cualquier paleta indicando su valor numérico o su nombre en el argumento «colores» de la función. Y además, con una particularidad: todas las paletas pueden invertirse, es decir, utilizarse con los colores dispuestos tal y como aparecen en la imagen anterior o justo al revés, lo que permite contar con un total de 26 escalas cromáticas. La cosa va así:

  • Un valor numérico positivo o el nombre de la paleta precedido de una barra baja [_], como  «_Esmeralda», escoge la paleta ordinaria.
  • Un valor numérico negativo o el nombre de la paleta precedido de una exclamación [!], como  «!Esmeralda», selecciona la paleta designada en modo invertido.
Paleta de colores normal o invertida, tú eliges.
[B2] =SPARKLINE_BARRAS(A2:A7;"_aire";;;;100;;;;;)
[E2] =SPARKLINE_BARRAS(A2:A7;"!aire";;;;100;;;;;)

Pero es que además los minigráficos de barras pueden estar compuestos por hasta ocho segmentos de diferentes colores (en mi cabeza, barras de colores apiladas), nueve si tenemos en cuenta además el color de fondo, del que ya hemos hablado. Y cuando me enteré (sí, otra vez Max 😅) de que esto era posible, no me quedó otra alternativa que introducir esta capacidad en mi función.

Para activar este nuevo modo de funcionamiento estableceremos a VERDADERO el argumento «colores_apilados». ¿Te apetece ver cómo quedarían los atributos de nuestro licántropo preferido?

¡Muero no si dices que esto es... hermoso!
[A3] =SPARKLINE_BARRAS(ArrayFormula(-B3:B14);"_cacao";;;;15;;;;VERDADERO;)
[E3] =SPARKLINE_BARRAS(D3:D14;"_violeta";;;;15;;;;VERDADERO;)

Otro ejemplo de uso, en este caso absolutamente real:

Un minigráfico con segmentos multicolor es capaz de mejorar cualquier cosa.

Y para concluir este capítulo dedicado a los minigráficos de barras, un detalle final. El uso de esto modo de segmentos multicolor requiere que los intervalos porcentuales definidos por medio del argumento intervalos sean cerrados (incluyentes) por la derecha, como por ejemplo:

{25% ; 50% ; 75% ; 100%}

Veamos ahora qué puede hacer SPARKLINE_BARRAS por los minigráficos de columnas. La respuesta corta es que no gran cosa 😅.

Minigráficos de columnas

Mi objetivo inicial al crear SPARKLINE_BARRAS era exclusivamente el de facilitar la generación de minigráficos de barras, y de manera más específica el tipo de barras que denotan el progreso de un proceso, con su color de fondo y tal.

No obstante, en algún momento pensé también en añadir cierto soporte, aunque fuera de mínimos, para los minigráficos de columna:

  • Múltiples minigráficos con una sola fórmula.
  • Colores dinámicos personalizados (aunque no segmentos multicolor).
  • Minigráficos con línea horizontal de referencia .

Permíteme que te lo cuente de un modo un tanto más abreviado.

Columnas rápidas sin argumentos adicionales

Para activar el modo de generación de columnas debes establecer a VERDADERO el argumento «tipo_columna». Al igual que pasaba con los minigráficos de barras, la función solo necesita los valores a representar para producir un resultado.

SPARKLINE_BARRAS, en modo columnas: entra una matriz de valores, sale un vector columna de barras.
[F2] =SPARKLINE_BARRAS(A2:E3;;;VERDADERO;;;;;;;)

Como cabía esperar, ahora son necesarios tantos valores como columnas deseen representarse en el minigráfico. Naturalmente, también puedes generar múltiples minigráficos usando una sola fórmula. Los valores de la matriz de entrada se tratarán por filas.

Se utilizará el valor absoluto de todos los valores numéricos que le facilitemos a la función a efectos de calcular el máximo de referencia.

Máximo automático en presencia de valores negativos.

Valor máximo personalizado

Indica el valor máximo de referencia que prefieras para establecer la altura del eje vertical del minigráfico.

Valor máximo personalizado.
[F2] =SPARKLINE_BARRAS(A2:E3;;;VERDADERO;;100;;;;;)

El eje vertical negativo se ajustará siempre de manera automática, siendo por tanto ajeno al valor que introduzcas manualmente como máximo.

Máximo personalizado en presencia de valores negativos.

Cuando necesites fijar también un valor mínimo para el eje Y en la zona negativa del mingráfico puedes emplear el argumento «opciones_sparkline». Te enseño cómo en un momento.

☝ Al igual que en los minigráficos de barras, deberás usar fórmulas independientes para tener un control más fino sobre el ajuste del valor máximo de referencia utilizado en cada uno de tus minigráficos de columnas.

Columnas de colores dinámicos

Debido a limitaciones aparentemente insalvables, hasta donde yo sé, de la función nativa SPARKLINE, no es posible generar columnas con segmentos de distintos colores.

Lo que sí podemos es colorear los minigráficos de modo dinámico utilizando idéntica estrategia a la que ya hemos visto cuando hablábamos de barras horizontales. Para ello, usaremos de manera análoga los argumentos «colores» e «intervalos», con una salvedad:  ahora se utilizará el valor promedio de la matriz de valores numéricos para escoger el color de la todas de las columnas de cada minigráfico.

Recuerda: el argumento «intervalos» se establece automáticamente cuando se omite, en este ejemplo a {50% ; 100%}.
[F2] =SPARKLINE_BARRAS(A2:E3;{"orange";"green"};;VERDADERO;;100;;;;;)

Por lo demás, puedes definir los colores e intervalos, así como seleccionar cualquiera de las 13x2 paletas cromáticas predefinidas exactamente del mismo modo que en el caso de los minigráficos de barras.

Línea horizontal de referencia

Una de las primeras (bueno, tal vez segundas 😅) cosas que se aprenden al trabajar con la función SPARKLINE es cómo dibujar minigráficos de columnas con una línea horizontal de referencia arbitraria distinta a la del eje X.

¿Cuántos minigráficos de columnas ves aquí?

Se trata de un truco bastante conocido que se basa en la construcción de un gráfico compuesto por dos minigráficos independientes apilados verticalmente en filas contiguas, cuya altura ha sido ajustada previamente de modo que refleje correctamente la altura a la que debe mostrarse la línea de referencia. Esto se suele combinar con el establecimiento de un borden interior entre ellas del color y grosor preferido, lo que contribuye a producir el efecto visual deseado.

Ben Collins nos lo explica perfectamente en su artículo sobre estas funciones, así que no lo haré yo aquí, aunque mi método es ligeramente distinto por lo que hace al cálculo de los valores de las secciones superior e inferior del minigráfico.

SPARKLINE_BARRAS dispone de un modo de funcionamiento específico que genera sendos minigráficos de columnas apilados, ajustados del modo indicado, simplificando así de manera notable la fórmula que hubieras tenido que introducir de hacerlo con la función nativa SPARKLINE.

Este modo se activa cuando se especifica un valor porcentual en el argumento «línea_referencia» en un minigráfico de columnas.

Múltiples minigráficos de columnas con línea horizontal de referencia en el 80% del eje Y.
[B5] =SPARKLINE_BARRAS(B2:C4;;;VERDADERO;;100;;80%;"lightpink";;)

Puedes designar un color para los segmentos de las barras situados por encima de la línea de referencia por medio del argumento «color_superior_linea». Como de costumbre, usa el nombre CSS de un color o su valor hexadecimal.

En este modo, la función SPARKLINE_BARRAS también acepta una matriz de valores, pero debido a la forma en que se disponen los minigráficos, el procesamiento se realizará necesariamente por columnas. Esto significa que, incluso si solo necesitas un único minigráfico y activas la línea de referencia, debes proporcionar los valores a la función en un vector columna.

La anchura de las filas 5 y 6, así como la línea de borde de color salmón que puedes ver en la imagen entre ellas, debe establecerse manualmente dado que las funciones con nombre no tienen manera de realizar estos ajustes. Podría montarse un pequeño tinglado con un activador Apps Script, por supuesto, pero honestamente creo que no merece la pena complicar tanto las cosas.

Y esto es todo lo que la función con nombre SPARKLINE_BARRAS puede aportar a los minigráficos de columnas. Y seguramente estarás pensando que faltan cosas 🤔. 

¿Cómo hago visible el eje horizontal característico de los minigráficos de columnas?¿Qué hay de establecer el color de ciertas columna como la primera, última, menor, mayor o las que están en negativo?

Todas estas son posibilidades que sí tenemos cuando usamos la función de minigráficos nativa y su casi interminable lista de opciones: axis, axiscolor, firstcolor, lastcolor, lowcolor, highcolor, negcolor...

Simplemente, y como creo que ya te he explicado, mi foco no eran las columnas, sino las barras (de progreso).

Argumentos de la función SPARKLINE_BARRAS, tal y como aparecen en la ayuda contextual.

Fundamentalmente por esa razón, pero también porque una función con nombre con once argumentos, numerosos modos de trabajo (barras, columnas, colores dinámicos, secciones multicolor, columnas apiladas...) y una lógica relativamente rebuscada de tratamiento de los argumentos aplicables en unas circunstancias u otras o que simplemente se omiten empieza a antojarse excesiva.

No obstante, no me quedaba tranquilo sin cubrir este tipo de ajustes finos de algún modo.

Inyección de ajustes nativos

Puedes ajustar el comportamiento de SPARKLINE_BARRAS introduciendo cualquiera de las opciones que admite la función nativa SPARKLINE a través del argumento opcional  «opciones_sparkline».

Este argumento se aplica tanto a los minigráficos de columnas como a los de barras, aunque es menos útil en estos últimos, donde probablemente solo tendría sentido ajustar opciones como el tratamiento de celdas vacías o con valores no numéricos.

Veamos un ejemplo trabajando con un minigráfico de columnas, donde tiene mucho más sentido. Mediante este argumento:

  • Se hace visible el eje horizontal en color naranja.
  • Las columnas negativas se muestran en gris.
  • La columna de mayor altura queda coloreada en un tono salmón.
  • Se establece el valor mínimo del eje vertical en -100, para que de este modo los semiplanos positivo y negativo ocupen exactamente el mismo espacio en la celda que aloja el minigráfico.
Usando otras opciones de la función de minigráficos nativa SPARKLINE.
[B2] =SPARKLINE_BARRAS(
B1:I1;;;VERDADERO;
{
"axis";VERDADERO;
"axiscolor";"orange";
"negcolor";"gainsboro";
"highcolor";"lightpink";
"ymin";-100
};100;;;;;)

Además, introducir estas opciones adicionales en mi SPARKLINE_BARRAS resulta más cómodo que hacerlo en la función nativa de Google Sheets, que exige una matriz de dos columnas (nombre de la opción y valor asignado) y tantas filas como opciones se deseen establecer. Esto hace que típicamente sea necesario combinar el uso de los caracteres [;] y [\] de modo correcto para montarla.

☝ En cambio, SPARKLINE_BARRAS admite un sencillo vector fila o columna con la lista de opciones y valores dispuestos consecutivamente, por lo que puedes utilizar únicamente tanto [;] como [\].

Comentarios finales y siguientes pasos

Creo que no me dejo nada importante en el tintero.

Confío en que encuentres útil esta nueva función con nombre, que encontraras en mi Kit de funciones con nombre para Google Sheets. Yo no he dejado de utilizarla en mis propias hojas de cálculo desde el momento en que, en algún punto de su proceso de desarrollo, fue mínimamente operativa.

Y hablando de cuestiones técnicas, aunque sea muy tangencialmente, creo que si ahora tuviese que construirla de nuevo crearía más bien dos funciones con nombre independientes, una para generar barras horizontales y otra distinta para las columnas.

El resultado hubiera sido menos compacto, qué duda cabe, pero lo cierto es que tratar de apretujar tantas cosas en una sola función me ha causado algún que otro quebradero de cabeza. Y es que el editor de funciones con nombre de Google Sheets realmente no ofrece por el momento las funcionalidades de edición y depuración que serían deseables para programar funciones extensas.

En fin, solo espero recordar esta enseñanza cuando tenga que partir una nueva función con nombre de este tamaño 🙄.

¿Mejoras? Siempre las hay, por supuesto. De hecho en algún momento tuve que parar las máquinas del desarrollo para ponerme a escribir tanto la documentación de la función como este artículo, a modo de guía de uso y tutorial. A medida que pasaban los días se me iban ocurriendo nuevas cosas que incorporar, hasta el punto de que en un momento dado empecé a temer que la función vería la luz ya en el 2025 😅. Tengo que aprender a pasar página con mayor contundencia, sin duda.

Algunas características que por ahora se han quedado fuera de esta primera versión de la función:

  • Introducir múltiples líneas de referencia horizontales en los minigráficos de columnas, usando para ello tantos minigráficos como sean necesarios.
  • Del mismo modo, posibilitar la representación de líneas de referencia verticales también en los minigráficos de barras, siguiendo el mismo principio que en los de columnas.
  • Repensar alguna estrategia para producir barras con segmentos multicolor cuando los intervalos porcentuales son excluyentes por su extremo superior (su primer valor es 0%) de manera que el resultado sea visualmente significativo.
  • Integrar la capacidad de superponer valores numéricos sobre las barras horizontales.

¿Te gustaría que añadiera alguna otra cosa? ¿Has usado o vas a usar SPARKLINE_BARRAS en alguno de tus proyectos?

¡No dejes de contármelo en los comentarios de este artículo! 👋