Maîtrisez les formules Airtable

Votre base CRM sait maintenant additionner un chiffre d’affaires, remonter un e-mail et compter des contacts. Il lui manque encore une chose : réagir automatiquement à l’état de vos prospects. Dans ce chapitre, vous allez écrire des formules qui calculent un statut dynamique, puis apprendre à lire et à corriger une formule qui refuse de fonctionner. À la fin, votre base affichera un champ Statut prospect dynamique capable de signaler, tout seul, les prospects à relancer.

Découvrez la syntaxe des formules Airtable

Regardez la vidéo suivante pour découvrir la syntaxe des formules Airtable. Une version écrite est également disponible ci-dessous pour vous servir de référence.

Avant d’écrire une formule Airtable, décrivez ce que vous voulez obtenir avec des mots simples. Par exemple : « si le dernier contact date de plus de dix jours, alors ce prospect est urgent ». Une formule Airtable ne fait rien d’autre que traduire cette phrase en une instruction que la base sait exécuter. Commencez toujours par la phrase en langage naturel, puis traduisez-la en syntaxe. Cet ordre vous évite de vous perdre dans les parenthèses avant même de savoir ce que vous cherchez.

Une formule est un type de champ particulier : elle ne se saisit pas à la main. Airtable la recalcule pour chaque enregistrement à partir des autres champs de la table, mais aussi de fonctions et de constantes commeTODAY().

Les quatre fonctions de base

Quatre fonctions suffisent pour écrire un statut dynamique.

  • IF(condition, valeur si vrai, valeur si faux)teste une condition et renvoie l’une de deux valeurs ;

  • SWITCH(expression, valeur1, résultat1, ..., défaut)compare une expression à plusieurs valeurs et renvoie le résultat correspondant, ou la valeur par défaut si aucune ne correspond ;

  • AND(condition1, condition2)n’est vrai que si toutes les conditions sont vraies ;

  • OR(condition1, condition2)est vrai dès qu’au moins une condition est vraie.

Retenez la logique avant la syntaxe :IFrépond à une question à deux issues,SWITCHrépond à une question à plusieurs issues,ANDetORcombinent plusieurs conditions en une seule.

Les types de champs comptent

Une formule agit sur des champs, et chaque champ possède un type : texte, nombre ou date. Ce type décide de ce que vous pouvez faire avec le champ. Un champ nombre peut être additionné ou comparé avec>ou<. Un champ date peut être comparé au jour courant avecTODAY(). Un champ texte se compare à une valeur exacte, par exemple{Statut} = "En discussion". Vérifier le type d’un champ avant de l’utiliser dans une formule vous épargne la majorité des erreurs que vous rencontrerez plus loin dans ce chapitre.

Les opérateurs de comparaison

Pour poser une condition, vous comparez deux valeurs avec un opérateur.

  • >et<comparent des nombres ou des durées ;

  • =teste l’égalité ;

  • !=teste la différence.

Par exemple,DATETIME_DIFF(TODAY(), {Dernier contact}, 'days') > 10est vrai lorsque le nombre de jours écoulés depuis le dernier contact dépasse dix. Dans Airtable, un nombre de jours se calcule avecDATETIME_DIFF(date1, date2, 'days'), et non en soustrayant deux dates directement : une soustraction directe ne renvoie pas de façon fiable un nombre entier de jours.

Ce qui change par rapport à Excel

Si vous venez d’Excel, une différence va vous surprendre : dans Airtable, vous ne référencez pas de cellules commeA1ouB2. Vous désignez les champs par leur nom, entouré d’accolades lorsqu’il contient un espace, comme{Dernier contact}. Dans l’éditeur de formule, un nom de champ s’insère en le sélectionnant dans la liste proposée : il apparaît alors comme un jeton, par exemple{Dernier contact}. Ne le tapez pas caractère par caractère, car saisir un nom de champ à la main est une source d’erreur fréquente. La même formule s’applique alors à chaque enregistrement de la table, sans avoir à la recopier ligne par ligne.

Regardez la vidéo ci-dessous pour voir cette syntaxe en action. Gardez trois objectifs en tête pendant le visionnage : repérer quand utiliserIFplutôt queSWITCH, comprendre pourquoi le type d’un champ (texte, nombre, date) décide de ce que la formule peut faire, et observer comment un nom de champ s’insère comme un jeton au lieu d’être tapé. À la fin, vous devriez pouvoir traduire vous-même une phrase en langage naturel en une formule Airtable.

Écrivez des formules de statut pas à pas

Vous allez maintenant suivre une démonstration commentée dans Airtable. La vidéo de démonstration d’écran décrit chaque action de l’interface et chaque décision de syntaxe. Une version écrite est également disponible ci-dessous pour vous servir de référence.

L’objectif est d’ajouter un champ Statut prospect dynamique à la table Prospects de votre base CRM. Vous allez le construire en trois étapes, d’une condition simple vers une logique conditionnelle de plus en plus riche et précise.

Étape 1 : un IF simple

Créez un champ de type formule, nommez-le Statut prospect dynamique, puis saisissez :

IF(DATETIME_DIFF(TODAY(), {Dernier contact}, 'days') > 10, "Urgent", "À jour")

Décision de syntaxe :DATETIME_DIFF(TODAY(), {Dernier contact}, 'days')renvoie le nombre de jours écoulés depuis le dernier contact ; la condition> 10est vraie au-delà de dix jours. LeIFrenvoie alors"Urgent", sinon"À jour". Validez, puis basculez en vue Kanban : les prospects sans contact récent se regroupent dans la colonne Urgent.

Étape 2 : imbriquer AND dans IF

Vous voulez maintenant un signal plus fin : « Urgent » seulement si le prospect est en discussion et sans contact depuis plus de dix jours. Combinez les deux conditions avecAND:

IF(AND({Statut} = "En discussion", DATETIME_DIFF(TODAY(), {Dernier contact}, 'days') > 10), "Urgent", "À jour")

Décision de syntaxe :ANDregroupe les deux conditions ; leIFne renvoie"Urgent"que si les deux sont vraies en même temps. Un prospect en discussion mais contacté hier reste"À jour", un prospect ancien mais déjà perdu aussi. Validez et vérifiez en Kanban que seuls les prospects réellement prioritaires basculent dans Urgent. C’est cette version combinée qui constitue l’état final du champ Statut prospect dynamique : c’est elle que vous conservez dans votre CRM et qui alimentera l’interface de pilotage du chapitre suivant. Les étapes 1 et 2 sont des paliers d’apprentissage progressifs qui y conduisent, et non des versions à garder en parallèle.

Gérez les valeurs vides et lisez les erreurs

Une formule correcte sur le papier peut renvoyer un résultat inattendu. Deux cas reviennent constamment : la formule affiche#ERROR, ou elle renvoie une valeur vide au lieu de la valeur attendue. Voyons comment lire chacun de ces symptômes, puis une checklist pour les diagnostiquer.

Cas 1 : la formule renvoie #ERROR

Vous écrivez une condition numérique, par exempleIF({Montant} > 100, "Grand compte", "Standard"), et le champ affiche#ERRORsur chaque enregistrement. Diagnostic : le champ source Montant est de type texte, alors que la comparaison> 100attend un nombre. Airtable ne peut pas comparer un texte à un nombre, il signale donc une incompatibilité de type.

Correction : ouvrez la configuration du champ Montant et vérifiez son type. S’il est enregistré comme du texte alors qu’il doit représenter un montant, corrigez le type de champ source pour qu’il soit numérique. Ne contournez pas le problème en réécrivant la valeur à la main : la formule doit fonctionner sur la vraie source.

Cas 2 : la formule renvoie une valeur vide

Vous écrivezIF({Dernier contact} = "", "Jamais contacté", "Contacté")pour repérer les prospects sans historique, mais la formule renvoie une valeur vide au lieu de"Jamais contacté". Diagnostic : un champ qui n’a jamais été renseigné ne vaut pas la chaîne vide"", il vautBLANK(). La comparaison= ""ne se déclenche donc pas comme prévu, et la formule ne renvoie pas la valeur attendue.

Pour tester réellement un champ vide, préférezBLANK()à"": par exempleIF({Dernier contact} = BLANK(), "Jamais contacté", "Contacté").

La checklist de debug en quatre étapes

Face à une formule qui ne fonctionne pas, contrôlez toujours dans le même ordre :

  1. vérifiez les types des champs source ;

  2. vérifiez les valeurs source sur des enregistrements de test ;

  3. vérifiez les parenthèses ;

  4. testezBLANK()plutôt que""pour détecter un champ vide.

Il est normal qu’une formule ne fonctionne pas du premier coup. Cette checklist n’est pas une punition : c’est la méthode que suivent aussi les personnes expérimentées pour retrouver la cause d’un écart sans modifier la configuration au hasard.

À vous de jouer !

Une boutique en ligne veut afficher une mention de remise selon le montant de chaque commande. La formule préparée est invalide dans l’éditeur. Retrouvez la cause avec les vérifications du chapitre, puis contrôlez les résultats.

Commencez sans IA et sans lire le corrigé. Vos éventuelles notes restent pour vous : aucun dossier de diagnostic n’est demandé.

Étape 1 : Préparez trois commandes

Dans CRM d’entraînement, ajoutez une table Commandes, sans relation avec les autres tables. Créez Commande (texte, premier champ) et Montant (nombre), puis saisissez :

Commande

Montant

CMD01

99

CMD02

100

CMD03

120

La règle est la suivante : afficher Remisesi le montant est strictement supérieur à 100 euros, sinonSans remise. Prédisez les trois résultats avant d’ouvrir l’éditeur de formule.

Étape 2 : Diagnostiquez la formule

Préparez un champ formule Statut remise et examinez cette expression dans son éditeur :

IF({Montant} > 100, "Remise", "Sans remise"
  1. Vérifiez le type du champ source Montant.

  2. Contrôlez les trois valeurs saisies et le nom du champ référencé.

  3. Vérifiez les parenthèses, puis corrigez l’expression pour pouvoir l’enregistrer. Vous n’avez pas à obtenir une cellule d’erreur : le défaut se constate dans l’éditeur.

  4. Comparez les trois résultats à vos prédictions. Expliquez ce qui distingue la commande à 100 euros de celle à 120 euros.

Tous les montants sont renseignés : le contrôle des valeurs vides est sans objet dans cet essai. Ne changez pas les données pour faire correspondre les résultats à vos attentes.

Étape 3 : Vérifiez la règle finale du CRM

Revenez dans Prospects. Écrivez ou vérifiez Statut prospect dynamique avec la version finale étudiée :Urgentsi Statut vaut En discussionet si le dernier contact remonte à plus de dix jours, À joursinon. Utilisez IF, ANDet DATETIME_DIFF(TODAY(), {Dernier contact}, 'days'), sans refaire les paliers intermédiaires de la démonstration.

Pour ces tests, J est le jour renvoyé parTODAY(). Lisez-le dans un champ formule temporaire Jour de contrôle contenant TODAY(), affiché en GMT. Ce repère évite de confondre le jour utilisé par la formule avec une date affichée dans votre fuseau local. Gardez Dernier contact au format date sans heure.

  1. Recalez les dates de C2 sur ce J : Aster à J-12, Boreal à J-5, Corail à J, Delta à J-20. Si la séance a changé de jour, actualisez les quatre dates avant de comparer les résultats.

  2. Lisez les statuts calculés dans la grille. Delta doit-il être urgent malgré ses vingt jours sans contact ?

  3. Passez temporairement Dernier contact d’Aster à J-10, puis à J-11. Observez la limite, puis restaurez J-12.

  4. Supprimez Jour de contrôle après les tests. Conservez la formule finale et les quatre dates de référence.

Étape 4 : Corrigez votre travail

Prenez quelques minutes pour essayer de vérifier votre travail vous-même avant de consulter le corrigé.

En résumé

  • IFteste une condition et renvoie l’une de deux valeurs, tandis que SWITCHcompare une expression à plusieurs valeurs et renvoie le résultat correspondant.

  • Le type du champ source doit toujours être vérifié avant d’écrire une formule qui le compare ou le calcule.

  • BLANK()et""ne désignent pas la même chose : un champ jamais renseigné vaut BLANK(), nuance encore à confirmer (SME-Q2).

  • Un #ERRORsignale le plus souvent une incompatibilité de type, que la checklist de debug en quatre étapes permet d’isoler.

Vos formules produisent maintenant des statuts fiables, mais ils restent visibles uniquement dans la base brute. Dans le prochain chapitre, vous construirez une interface pour vos utilisateurs, avec des pages, des filtres et un tableau de bord adaptés à leur métier.

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous