Aller au contenu

Champs formule

Un champ formule calcule sa valeur à partir des autres champs de la ligne. Vous ne saisissez pas la valeur : TimeTonic la calcule et la met à jour automatiquement. Un champ formule est en lecture seule.

Une table avec trois champs formule, identifiés par l’icône ƒ

  • Référencez un champ avec son code entre accolades : {employees}.
  • Les noms de fonctions sont en MAJUSCULES : SUM, IF, CONCAT. La casse est obligatoire.
  • Séparez les arguments par des virgules. Écrivez les textes entre guillemets : "actif".
  • Les booléens s’écrivent true et false, en minuscules.
  • Les opérateurs classiques fonctionnent : +, -, *, /, comparaisons (==, !=, <, >).

Exemples réels de l’espace de démonstration :

DIVIDE({employees}, 1000) → effectif en milliers
MULTIPLY({employees}, 100000) → estimation de revenu

Vous choisissez le type de sortie de la formule : texte, nombre, booléen, date, date-heure ou devise. TimeTonic convertit le résultat vers ce type. Le champ se filtre et se trie ensuite comme un champ de ce type.

  • À chaque modification d’une ligne, TimeTonic recalcule les formules concernées dans la même écriture. Les formules qui dépendent d’autres formules se recalculent en cascade (10 niveaux maximum).
  • Les formules qui utilisent TODAY() ou NOW() se rafraîchissent chaque nuit.
  • Quand vous modifiez la définition d’une formule, TimeTonic recalcule toute la table en arrière-plan.
Fonction Rôle
SUM(v1, v2, …) Additionne les arguments (vide = 0)
MINUS(a, b) / MULTIPLY(v1, …) / DIVIDE(a, b) Opérations de base ; la division par zéro renvoie 0
MOD(a, b) Reste de la division
ROUND(v, n) / FLOOR(v, n) / CEIL(v, n) Arrondis à n décimales
ABS(v) / SQRT(v) / POWER(base, exp) Valeur absolue, racine, puissance
MIN(…) / MAX(…) / AVG(…) Minimum, maximum, moyenne
INT(v) Partie entière
LOG(v) / LN(v) Logarithme décimal / naturel
Fonction Rôle
CONCAT(v1, v2, …) Assemble les valeurs en un texte
LEFT(t, n) / RIGHT(t, n) / MID(t, début, n) Extraits de texte
LEN(t) Longueur
UPPER(t) / LOWER(t) / TRIM(t) Casse et espaces
SUBSTITUTE(t, cherche, remplace) Remplace toutes les occurrences
FIND(cherche, t, début) Position (0 si absent)
REPLACE(t, début, n, remplace) Remplacement par position
REPT(t, n) Répète le texte
TEXT(v, format) / VALUE(t) Nombre → texte / texte → nombre
EXACT(a, b) / T(v) Comparaison stricte / valeur si texte
ENCODE_URL_COMPONENT(t) Encode pour une URL

Les dates sont des horodatages. Le fuseau horaire de l’espace de travail s’applique.

Fonction Rôle
TODAY() / NOW() Date / date-heure du moment
DATE(année, mois, jour) Construit une date
DATEADD(d, n, unité) Ajoute n jours/mois/années/heures/…
DATE_DIFF(d1, d2, unité) Écart entre deux dates
YEAR(d) MONTH(d) DAY(d) HOUR(d) MINUTE(d) SECOND(d) Extraient une composante
WEEKDAY(d) / WEEKNUM(d) Jour de semaine (1 = lundi) / numéro de semaine ISO
WORKDAY(d, n) Date après n jours ouvrés
IS_AFTER(d1, d2) / IS_BEFORE(d1, d2) / IS_SAME(d1, d2, unité) Comparaisons
DATESTR(d, format) / TIMESTR(d) Formatage en texte
DATETIME_PARSE(t, format) / DATETIME_FORMAT(d, format) Texte ↔ date
TOTIMESTAMP(v) / FROMTIMESTAMP(ts) Conversions d’horodatage
FROMNOW(d) / TONOW(d) Temps relatif (« il y a 3 jours »)
Fonction Rôle
IF(condition, siVrai, siFaux) Condition
IFS(cond1, val1, cond2, val2, …) Première condition vraie
SWITCH(expr, cas1, rés1, …, défaut) Sélection par cas
AND(…) / OR(…) / NOT(v) Logique booléenne
ISBLANK(v) / ISNUMBER(v) / ISTEXT(v) Tests
COUNT(…) Compte les valeurs non vides
COALESCE(…) Première valeur non vide
BLANK() Valeur vide
ERROR(message) Provoque une erreur de formule
  • Une formule contient au maximum 2 000 caractères.
  • Les cascades de formules s’arrêtent après 10 niveaux.
  • Un résultat texte est limité à 100 Ko.
  • En cas d’erreur de calcul sur une ligne, la valeur devient vide ; les autres lignes ne sont pas affectées.

Le type de champ est formula. L’API expose la validation d’une formule (POST …/tables/{tableCode}/formula/validate) et le recalcul à la demande (POST …/fields/{fieldCode}/formula/recompute). Consultez la référence API.