Fonctions et opérateurs TimeTonic :
le guide complet des formules V2
Dans TimeTonic, une colonne formule ne se contente pas d'afficher une valeur : elle la calcule, la transforme et l'adapte en temps réel. Grâce aux formules V2, vous disposez d'un moteur de calcul puissant qui combine fonctions de date, de texte, numériques et logiques pour automatiser vos processus métier, sans écrire une seule ligne de code. Ce guide vous explique comment ça fonctionne, à quoi servent chaque famille de fonctions, et vous fournit la liste complète de toutes les fonctions disponibles avec leur syntaxe exacte et des exemples concrets.
Nouvelles fonctions
Le moteur de formules TimeTonic évolue en continu. Chaque fois que l'équipe technique publie une nouvelle fonction, elle apparaît dans le tableau ci-dessous — vous avez ainsi toujours une vue à jour des derniers ajouts, sans avoir à consulter les notes de version. Les fonctions listées ici sont également documentées dans les tableaux par catégorie plus bas dans ce guide.
| Fonction | Syntaxe | Exemple | Description |
|---|---|---|---|
| AVERAGE | AVERAGE(val1, val2, ...) |
AVERAGE(10, 15, 20) ➡️ 15 |
Calcule la moyenne d'un ensemble de nombres. |
| CEILING | CEILING(valeur) |
CEILING(4.3) ➡️ 5 |
Arrondit un nombre à l'entier supérieur le plus proche. |
| COUNTIF | COUNTIF(valeur, critère, séparateur) |
COUNTIF("101 205 301 50", ">100", " ") ➡️ 3 |
Compte les éléments d'un champ texte ou relationnel qui correspondent à un critère, après les avoir séparés par un séparateur. |
| FIND | FIND(texte_cherché, texte_dans_lequel, position) |
FIND("A", "BANANE", 1) ➡️ 2 |
Renvoie la position exacte d'une sous-chaîne (sensible à la casse). |
| FLOOR | FLOOR(valeur) |
FLOOR(4.3) ➡️ 4 |
Arrondit un nombre à l'entier inférieur le plus proche. |
| INT | INT(valeur) |
INT(3.7) ➡️ 3 |
Renvoie la partie entière d'un nombre, en arrondissant vers le bas. |
| ISO_WEEKNUM | ISO_WEEKNUM(date) |
ISO_WEEKNUM(2026-01-01) ➡️ 1 |
Renvoie le numéro de semaine ISO d'une date (les semaines commencent le lundi ; la semaine 1 comprend le premier jeudi de l'année). |
| LEFT | LEFT(texte, nombre_de_caractères) |
LEFT("ABC1234", 3) ➡️ "ABC" |
Extrait les n premiers caractères d'une chaîne. |
| LENGTH | LENGTH(text) |
LENGTH("Bonjour") ➡️ 7 |
Renvoie le nombre de caractères dans une chaîne (espaces compris). |
| LOWER | LOWER(texte) |
LOWER("BONJOUR LE MONDE") ➡️ "bonjour le monde" |
Convertit toutes les lettres en minuscules. |
| MEDIAN | MEDIAN(valeur1, valeur2, ...) |
MEDIAN(3, 1, 8, 9, 2) ➡️ 3 |
Renvoie la valeur médiane d'un ensemble de nombres. |
| REGEXEXTRACT | REGEXEXTRACT(texte, expression_régulière) |
REGEXEXTRACT("commande n°24158", "[0-9]+") ➡️ "24158" |
Extrait la première valeur correspondant à une expression régulière. |
| REGEXMATCH | REGEXMATCH(texte, expression_régulière) |
REGEXMATCH("code T51234", "([A-Z].*([0-9]){5}") ➡️ vrai |
Vérifie si un texte correspond à une expression régulière. Renvoie vrai ou faux. |
| REGEXREPLACE | REGEXREPLACE(texte, expression_régulière, remplacement?) |
REGEXREPLACE("Supermarché", "Super", "Hyper") ➡️ "Hypermarché" |
Remplace toutes les occurrences d'une expression régulière par un nouveau texte. |
| REPLACE | REPLACE(texte, position_début, nombre_de_c., nouveau_texte) |
REPLACE("TimeTonic", 1, 4, "Demo") ➡️ "DemoTonic" |
Remplace une partie du texte définie par une position et une longueur. |
| RIGHT | RIGHT(texte, nombre_de_caractères) |
RIGHT("ABC1234", 4) ➡️ "1234" |
Extrait les n derniers caractères d'une chaîne. |
| ROUND | ROUND(valeur, précision) |
ROUND(3.14159, 2) ➡️ 3.14 |
Arrondit une valeur au nombre souhaité de décimales. |
| ROWID | ROWID() |
ROWID() ➡️ "jklm1234" |
Renvoie l'identifiant technique unique d'une ligne. Permet un référencement stable des lignes. |
| SEARCH | SEARCH(texte_cherché, texte_dans_lequel, position) |
SEARCH("ban", "Banane", 1) ➡️ 1 |
Renvoie la position d'une sous-chaîne (sans distinction entre majuscules et minuscules). |
| STDEV | STDEV(valeur1, valeur2, ...) |
STDEV(4, 5, 8, 10) ➡️ 2.75 |
Calcule l'écart type d'un ensemble de nombres. |
| SUBSTITUTE | SUBSTITUTE(texte_original, ancien_texte, nouveau_texte, instance?) |
SUBSTITUTE("TT-2026-01", "TT", "TM") ➡️ "TM-2026-01" |
Remplace une ou plusieurs occurrences d'une chaîne par une autre. |
| SWITCH | SWITCH(source, valeur1, résultat1, valeur2, résultat2, ..., défaut) |
SWITCH(Statut, "New","Urgent", "Completed","Fermé", "Inconnu") |
Compare une expression à plusieurs cas et renvoie le premier résultat correspondant. Remplace les chaînes IF() imbriquées. |
| TRIM | TRIM(texte) |
TRIM(" Bonjour le monde ") ➡️ "Bonjour le monde" |
Supprime les espaces avant, arrière et supplémentaires à l'intérieur. |
| UPPER | UPPER(texte) |
UPPER("lorem ipsum") ➡️ "LOREM IPSUM" |
Convertit toutes les lettres en majuscules. |
| WEEKNUM | WEEKNUM(date) |
WEEKNUM(2026-01-10) ➡️ 2 |
Renvoie le numéro de semaine d'une date (les semaines commencent le dimanche ; la semaine 1 comprend le 1er janvier). |
Les formules TimeTonic : bien plus qu'un simple tableur
La différence entre un champ texte et une colonne formule
Un champ texte stocke ce que vous saisissez. Une colonne formule, elle, calcule automatiquement sa valeur à partir d'autres colonnes, de la date du jour, ou de règles que vous définissez. Résultat : vos données restent toujours à jour, sans intervention manuelle.
Concrètement, cela signifie que vous pouvez afficher l'ancienneté d'un contrat en jours, signaler automatiquement qu'un stock est en rupture, ou construire un identifiant unique à partir du nom et de la date d'entrée d'un collaborateur | le tout sans quitter TimeTonic.
Ce que les fonctions permettent d'automatiser sans coder
La logique des fonctions : comment ça marche ?
Fonctions, opérateurs, champs et constantes
Toute formule TimeTonic est construite à partir de quatre briques élémentaires :
- Fonctions: les opérations à effectuer (calculer un écart de date, convertir en majuscules, arrondir un nombre…).
- Opérateurs: ils comparent ou combinent des valeurs (
==,>,and…). - Champs: vos colonnes TimeTonic, référencées dans l'éditeur avec le
$symbole ou sélectionné dans le panneau glossaire. - Constantes: valeurs fixes que vous saisissez directement, telles qu'un nombre ou une chaîne entre guillemets.
Le principe d'imbrication : des formules dans des formules
La puissance des formules V2 tient à leur capacité à s'imbriquer : le résultat d'une fonction peut devenir l'argument d'une autre. C'est ce qui permet de construire des logiques élaborées en une seule expression.
Voici un exemple concret : déterminer si une personne est majeure ou mineure à partir de sa date de naissance.
Ici, YEAR_ADD() calcule d'abord la date majoritaire, puis le résultat est comparé à TODAY() via la condition ternaire. Trois éléments imbriqués, un résultat lisible.
Format de sortie : contrôler ce que l'utilisateur voit
Une fois votre formule rédigée, l'onglet Format de sortie vous permet de définir comment le résultat sera affiché : texte simple, texte multi-ligne, URL, date (avec ou sans heure), nombre (avec arrondi et symbole de devise) ou coordonnées géographiques.
Opérateurs : comparer, combiner, conditionner
Tableau des opérateurs de comparaison, arithmétiques et logiques
Les opérateurs sont les connecteurs logiques et arithmétiques de vos formules. Ils vous permettent de comparer deux valeurs, d'effectuer des opérations mathématiques ou de combiner plusieurs conditions.
| Nom | Syntaxe | Exemple | Description |
|---|---|---|---|
| EQUAL | == |
5 == 5 ➡️ vrai |
Vérifie si deux valeurs sont égales. |
| NOT EQUAL | != |
5 != 3 ➡️ vrai |
Vérifie si deux valeurs sont différentes. |
| LESS THAN | < |
3 < 5 ➡️ true |
Vérifie si une valeur est strictement inférieure à une autre. |
| MORE THAN | > |
5 > 3 ➡️ vrai |
Vérifie si une valeur est strictement supérieure à une autre. |
| LESS OR EQUAL | <= |
3 <= 5 ➡️ true |
Vérifie si une valeur est inférieure ou égale à une autre. |
| MORE OR EQUAL | >= |
5 >= 5 ➡️ vrai |
Vérifie si une valeur est supérieure ou égale à une autre. |
| AND | and |
âge > 18 et ville == « Londres » |
Renvoie vrai si toutes les conditions sont vraies. |
| OR | or |
âge > 18 ou ville == « Londres » |
Renvoie true si au moins une condition est vraie. |
| NOT | not |
Âge inférieur à 18 ans |
Inverse une condition. Vrai si la condition est fausse. |
| IN | in |
IN("5", [1, 2, 3, 5]) ➡️ vrai |
Vérifie si une valeur appartient à un ensemble de valeurs. |
| PLUS | + |
5 + 3 ➡️ 8 |
Ajoute deux valeurs. |
| MINUS | - |
5 - 3 ➡️ 2 |
Soustrait une valeur d'une autre. |
| MULTIPLY | * |
5 * 3 ➡️ 15 |
Multiplie deux valeurs. |
| DIVIDE | / |
15 / 3 ➡️ 5 |
Divise une valeur par une autre. |
| MODULO | % |
10 % 3 ➡️ 1 |
Renvoie le reste d'une division. Utile pour les vérifications pair/impair ou la gestion des cycles. |
| POWER | ** |
2 ** 3 ➡️ 8 |
Élève une valeur à la puissance d'une autre. |
| CONDITION TERNAIRE | condition ? ifTrue : ifFalse |
X > 5 ? « Oui » : « Non » |
Renvoie l'une des deux valeurs en fonction du résultat d'une condition. L'opérateur le plus puissant pour l'affichage conditionnel. |
Cas métier : qualifier automatiquement un lead selon son score
Un commercial gère ses prospects dans son CRM. Chaque prospect est noté entre 0 et 100. À l'aide de la condition ternaire, une colonne de formule affiche automatiquement la qualification :

