Switch() ou Nested if() ? 🤔 et Cas concret.

... ou comment éviter des romans dans vos formules...

Point chiffre : 50 abonnés à cette newsletter 😍.

Bien s’passer Lilian…

Nouveau : petit formulaire disponible plus bas pour choisir ton prochain sujet :D


De quoi on parle aujourd’hui ?

  1. Nested IF() vs SWITCH()
  2. Un cas concret :) (le formulaire plus haut justement).

La dernière fois nous avons abordé la fonction IF().

Le nested IF() c’est un peu des IF()… dans des IF().


Exemple 👉

  • Je souhaite écrire une phrase différente en fonction du {Prochain sujet} indiqué.
  • Si aucun sujet n’est indiqué, je souhaite quand même écrire un texte.

Lol j'ai oublié de préciser que le field est obligatoire ? :p

La formule qu’on utilise souvent :

Traduction : Si {Prochain sujet} = “Ceci”, alors “Ecris ceci”, sinon Si {Prochain sujet} = “Ce statut là”, “bah finalement écris ça”, sinon SI …

IF( {Prochain sujet}="Un de mes cas clients 👀","Ca risque d'être long", IF({Prochain sujet}="Une formule expliquée","une formule, yes !", IF({Prochain sujet}="Un tuto sur Airtable","Ha il veut un tuto :D", IF({Prochain sujet}="Autre : rentrer un choix :)","Il s'en fiche de tes sujets, il veut autre chose !", IF({Prochain sujet}="Mes ressources favorites pour progresser","Il veut devenir un ninja 😏" ) ) ) ) )

Vous trouvez pas que c’est un poil épuisant à écrire lorsqu’il commence à y avoir beaucoup de variable ?

Imaginez qu’on ait 20 statuts différents ? 🤯


On va plutôt utiliser la fonction SWITCH() qui est réellement adaptée à ce genre de cas :

SWITCH({Valeur à comparer},

text” ou NUMBER,”Valeur à écrire”

)

Traduction : Voici le champs qui contient des statuts, réécris en fonction, si tu
trouves rien à comparer alors écris juste : “Lol il a rien rempli 😅”

SWITCH({Prochain sujet}, "Un de mes cas clients 👀","Ca risque d'être long", "Une formule expliquée","une formule, yes !", "Un tuto sur Airtable","Ha il veut un tuto :D", "Mes ressources favorites pour progresser","Il veut devenir un ninja 😏", "Autre : rentrer un choix :)","Il s'en fiche de tes sujets, il veut autre chose !", "Lol il a rien rempli 😅")

C’est beaucoup :

  • plus lisible
  • plus facilement débuggable
  • plus écologique au niveau de la data…(non)

Présentation du cas.

  • J’ai une newsletter qui parle d’Airtable, je souhaite proposer différents sujets à ma communauté et évaluer leur niveau global sur Airtable.
  • Ce qui m’intéresse également, c’est de connaître le niveau moyen de chaque personne concernant les différents sujets.
  • Ceci me permettra d’adapter les sujets en fonction du niveau, en plus de proposer des sujets qui intéressent mes followers 🥰

Le schéma des bases :

Le formulaire ici

La table Formulaires Airtable : (le template de la base sera disponible à la fin comme d’habitude).

Chaque enregistrement représente une réponse au formulaire :)

Sur cette table formulaire, la data va rentrer avec simplement les informations :

  • Sujet souhaité
  • Votre niveau sur Airtable
  • Si “Autre choix”, un champ texte est disponible pour écrire le sujet de son choix

Pour récupérer ces données et obtenir des statistiques nous pouvons également les grouper :

le “Avg” veut dire “average.. la moyenne :)”

Afin de mieux traiter mes statistiques, je crée une table “Sujets souhaités” où chaque enregistrement représente le status :

Pour récupérer les données dans l’autre table j’utilise une automation qui va copier coller le “statut” dans le champs “Formulaire”.

Pour éviter que ça fasse trop d’informations dans une newsletter, j’aborderai le sujet (si vous le soumettez dans le formulaire 😉)

Quand tu te sers de ta communauté… pour traiter d’un sujet qui nécessite ta communauté.. AirtableCeption 🙄

Maintenant, les choses vont se compliquer.

J’espère que vous avez lu ma dernière newsletter sur l’intégrité des données pour comprendre rapidement les erreurs qui vont arriver plus bas 😶

Le Rollup pour calculer la moyenne du niveau sur Airtable.

C’est moche. Mettons un peu d’étoile :D

Je vais utiliser la formule SWITCH() pour :

  • Comparer les valeurs données dans le {Niveau moyen des votants}.
  • Afficher le nombre d’étoiles correspondantes ⭐

Je vous préviens, ça va buguer fort, mais bien 's’passer.

Wtf.

Celle de droite (raccourcie) :

SWITCH({Niveau moyen des votants}, ”1”,"⭐", "2","⭐⭐", "3","⭐⭐⭐", "4","⭐⭐⭐⭐")

Pourquoi ça n’affiche rien Lilian ? 😡😵

Comme expliqué dans la dernière newsletter, l’intégrité n’est pas bonne :

  • La donnée dans le champs {Niveau moyen des votants} est de type Nombre.
  • La donnée que je demande à comparer dans la formule est de type “texte” (présence des guillemets).
  • “ “ = Pour Airtable, c’est du texte.

En gros, pour Airtable la valeur “1” n’existe pas dans le champ… car “1” est un texte.

Ce qui existe dans le champ est un nombre, le 1.

On corrige tout ça et on recommence :

La formule de Gauche :

SWITCH({Niveau moyen des votants}, 1,"⭐", 2,"⭐⭐", 3,"⭐⭐⭐", 4,"⭐⭐⭐⭐", 5,"⭐⭐⭐⭐⭐", 6,"⭐⭐⭐⭐⭐⭐", 7,"⭐⭐⭐⭐⭐⭐⭐", 8,"⭐⭐⭐⭐⭐⭐⭐⭐", 9,"⭐⭐⭐⭐⭐⭐⭐⭐⭐", 10,"⭐⭐⭐⭐⭐⭐⭐⭐⭐")

Imagine faire cette formule avec des IF() dans des IF()SWITCH() est génial !

Résultat :

Le 8 n’affiche rien, pourtant la formule est correcte… 😭

Lilian… Tu rends fou ça ne fonctionne toujours pas ! 😫

Encore une fois… avant d’essayer de comprendre pourquoi “ça fonctionne pas” essayez plutôt de comprendre ce que comprend Airtable ?

Raisonnement :

Si les 8 étoiles ne s’affichent pas, alors peut-être que Airtable m’affiche un 8… mais que ce n’est pas un 8 ?…

Si on changeait le formatting de notre champs “Niveau moyen” pour afficher les décimales ?

Hhhhhhm !!

Airtable affiche un 8, mais la valeur est 7.5 :)


Les solutions pour débuguer ça.

  1. Soit nous rajoutons un champs “utilitaire” pour arrondir le chiffre avec une formule ou la méthode “Rookie”.
  2. Soit on inclut cette opération dans le Roll-up directement. Méthode “Ninja”.

  1. Rajoutons un champs utilitaire qui va arrondir les chiffres, pour ça on utilise la fonction CEILING()

CEILING({Niveau moyen des votants})

�😎

L’effet que ça fait quand ça fonctionne

  1. Méthode Ninja, on inclue ça dans le Rollup directement.

Toutes les formules ne s’affichent pas dans les roll-up mais n’hésitez jamais à fouiller ce qu’on peut faire.

8.0 mais ça fonctionne quand même :) car 8 = 8.0 (et Airtable le comprend)


Les ressources :

  • Le template de la base à copier ici
  • Votez pour votre prochain sujet ici

A la semaine prochaine :D

Contenu indisponible : 'Note de bas de page'

Lilian Sevoumian : Mémoires d'un expert NoCode

Par Lilian Sevoumian

Je m'appelle Lilian Sevoumian, je suis Freelance et Formateur NoCode. J'aide surtout les entreprises à croître rapidement grâce aux NoCode Ops, c'est à dire les outils comme Airtable, Make, n8n, Glide. Je suis également Certifié Make et Partner Silver, ce sont des certifications officielles de l'outil Make qui me permettent de garantir une qualité de service et une rapidité d'éxécution :)