Saltar al contenido

5.02. Expresiones y condiciones anidadas

Anidar inputs, operadores y funciones

Es muy normal que en nuestras fórmulas usemos funciones, operadores e input values dentro de otras funciones. Esto se conoce como anidado o nesting.

Cuando combinamos inputs, operadores y/o funciones de manera que devuelvan un sólo valor, se conoce como expresión. Las expresiones pueden ser tan sencillas o complejas como queramos, siempre y cuando devuelvan un sólo valor.

Esto implica que los argumentos de una función no tienen por qué ser sólo una referencia a una propiedad o un valor literal; cualquier expresión puede ser a su vez un argumento siempre y cuando devuelva un valor único y éste sea del tipo correcto.

Por ejemplo, la sencilla fórmula add(100, 20) nos devolverá el resultado de sumar 100 y 20.

Pero podríamos convertirla en una expresión más complicada:

add(100, multiply(10, 2))

En este caso, el segundo argumento es el resultado de una función multiply() a la que hemos pasado como argumentos 10 y 2. Ambas operaciones darán como resultado: 120.

Un ejemplo algo más complicado, introduciendo como valores las referencias a otras propiedades:

Si quisiéramos calcular el precio total de un item aplicándole un IVA diferente:

add(prop("Precio"), multiply(prop("Precio"), prop("IVA")))

Primero, multiplicaríamos el Precio por el IVA → multiply(prop("Precio"), prop("IVA"))

Y ese resultado lo sumaríamos al Precio → Anidar inputs, operadores y funciones en fórmulas de Notion

Condiciones anidadas

El fenómeno de anidado lo encontraremos sobre todo con las funciones de tipo if(). Es decir, las funciones que nos sirven para comprobar si se cumple una condición o no:

if(2 == 1, "Igual", "No es igual")"No es igual"

Un uso muy común sería el de marcar como check una propiedad si esta se encuentra en estado "Completado":

if(prop("Status") == "completada", true, false)

Condición para marcar tareas completadas en Notion

También podemos usar las funciones and() y or() para comprobar dos expresiones diferentes:

if(and(prop("Pagado"), prop("Enviado")), "Completado", "En Progreso")

En esta fórmula estamos comprobando si un producto está tanto "Pagado" como "Enviado", en cuyo caso aparecería como "Completado". En caso contrario, "En progreso".

Por último, es posible que queramos mayor granularidad que un true o false. Podemos anidar condiciones:

if(prop("Mood") == "feliz", "😀", if(prop("Mood") == "apático", "😕", "😩"))

Esto se traduciría en:

  • Si "Mood" es "feliz", muestra "😀"
  • Si lo anterior no se cumple, si "Mood" es "apático", muestra "😕"
  • Si no se cumple ninguna de las anteriores, muestra "😩"
Estado final de condiciones anidadas en Notion Condiciones anidadas con emojis en Notion

¿Te ha resultado útil este contenido?