Requisitos previos
Para crear barras de progreso en Notion necesitas:
- Mínimo dos bases de datos relacionadas entre sí. Usarás esta relación para extraer el porcentaje de tareas completadas.
- Cuatro funciones diferentes:
-
if()como condicional -
slice()para pintar la barra -
round()para redondear cifras -
format()para convertir números a texto
-
if()
Comprueba si se cumple una condición. Necesita tres argumentos:
- Una expresión que evalúa si un valor es
trueofalse
- El valor si es
true
- El valor si es
false
Sintaxis: [comparación] ? [qué ocurre si es true] : [qué ocurre si es false]
slice()
Devuelve el segmento de un string que le indiques. Tres argumentos:
- El string original
- El punto de origen (primer carácter = 0)
- El punto final (opcional)
Ejemplo: slice("manzana, pera, sandía, kiwi", 9, 21) → pera, sandía
Se usa doblemente: para la barra rellena y para la parte vacía.
round()
Redondea un número decimal a su entero más cercano.
round(1.3) → 1
format()
Convierte un número en texto (string).
format(20) → "20"
Caracteres para la barra de progreso
- Completado: █ (o ▓)
- Sin completar: ░
Construcción de la fórmula completa
Con los elementos configurados (dos bases de datos relacionadas, propiedad Rollup con porcentaje llamada "Completadas"), la fórmula es:
(prop("Completadas") >= 1) ? "✅" : (slice("▓▓▓▓▓▓▓▓▓▓", 0, round(prop("Completadas") * 10)) + slice("░░░░░░░░░░", 0, round((1 - prop("Completadas")) * 10)) + " " + if(prop("Completadas") == 0, "0", format(round(prop("Completadas") * 100))) + "%")
Desglose de la fórmula
Si el porcentaje es 100% → check (✅)
El condicional verifica si "Completadas" es mayor o igual a 1 (100%). Si se cumple, muestra un check.
Si es menor al 100% → barra de progreso
Parte rellena:
slice("▓▓▓▓▓▓▓▓▓▓", 0, round(prop("Completadas") * 10))
Multiplica el porcentaje por 10 y redondea. 80% → 8 caracteres.
Parte vacía:
slice("░░░░░░░░░░", 0, round((1 - prop("Completadas")) * 10))
Resta el porcentaje a 1 para la parte no completada.
Mostrar el porcentaje en números:
Usa if() para mostrar "0" si no hay progreso. Si hay, multiplica por 100, redondea, convierte a texto y añade %.