Expressions et formules

← Retour au manuel

7. Expressions et formules

X-Sheets inclut un puissant langage d’expressions utilisé dans les colonnes virtuelles (champs calculés) et les conditions de filtre de vues. Ce chapitre est une référence complète pour les utilisateurs avancés.

7.1 Où sont utilisées les expressions

  • Colonnes virtuelles — Définissent une formule qui calcule des valeurs à partir d’autres colonnes. Ajoutées via les paramètres de colonne virtuelle de l’éditeur de données.
  • Conditions de filtre — Contrôlent quelles lignes apparaissent dans une vue. Configurées dans l’éditeur de vues.

7.2 Le constructeur d’expressions

Les deux cas d’utilisation fournissent un constructeur visuel d’expressions avec :

  • Un champ de texte pour saisir les expressions.
  • Fonction — Ouvre une liste catégorisée de toutes les fonctions avec descriptions et exemples.
  • Opérateur — Liste les opérateurs de comparaison, logiques et arithmétiques.
  • Autocomplétion — Suggère les colonnes et les feuilles liées par leur libellé au fur et à mesure de la saisie.
  • Validation en temps réel — Affiche les erreurs immédiatement.

7.3 Référencer des colonnes

Référencez une colonne par son libellé (le nom affiché dans l’application), entre accolades :

{Prix} * {Quantité}
{Prénom}
  • L’autocomplétion s’en charge — choisissez une suggestion et le libellé entre accolades est inséré ; vous avez rarement besoin de taper les accolades vous-même.
  • Libellés en doublon — si deux colonnes partagent le même libellé, l’éditeur les distingue sous la forme {Libellé (NOM)}, où NOM est le nom interne de la colonne.
  • Renommage sans risque — les expressions sont stockées avec les noms internes stables : renommer le libellé d’une colonne ne casse jamais vos formules ; l’éditeur affiche simplement le nouveau libellé.
  • Les noms internes restent valides — taper le nom interne (ex. FIRST_NAME) est toujours accepté.

7.4 Références inter-feuilles

Pour référencer des données d’une autre feuille, utilisez la syntaxe #{Libellé de feuille} :

COUNT(#{Commandes})
SUM(#{Commandes}.{Montant})
SUM(#{Factures}#{Lignes}.{Total})

Astuce : Si 2 références ou plus existent entre les feuilles, ajoutez le libellé de la colonne de référence comme ceci :

AVERAGE(#{Commandes}['Client'].{Montant})

7.5 Référence des fonctions

Fonctions d’agrégation

Ces fonctions opèrent sur des collections de lignes (typiquement à partir de références inter-feuilles) :

Fonction Description Exemple
COUNT(collection, [condition]) Compte le nombre de lignes COUNT(#{Commandes})
COUNTDISTINCT(collection, [condition]) Compte les valeurs uniques COUNTDISTINCT(#{Commandes}.{Catégorie})
SUM(collection, [condition]) Somme des valeurs numériques SUM(#{Commandes}.{Montant})
AVERAGE(collection, [condition]) Calcule la moyenne AVERAGE(#{Commandes}.{Montant})
MIN(collection, [condition]) Trouve la valeur minimale MIN(#{Scores}.{Valeur})
MAX(collection, [condition]) Trouve la valeur maximale MAX(#{Scores}.{Valeur})

Astuce : Toutes les fonctions d’agrégation acceptent un second paramètre optionnel pour le filtrage : COUNT(#{Commandes}, #{Commandes}.{Statut} = "Terminée")

Fonctions de date

Fonction Description Exemple
TODAY() Retourne la date du jour (sans heure) TODAY()
NOW() Retourne la date et l’heure actuelles (à la minute) NOW()
DATE(year, month, day) Crée une date spécifique DATE(2024, 6, 15)
DAY(date) Extrait le jour (1-31) DAY({Date de naissance})
MONTH(date) Extrait le mois (1-12) MONTH({Date de commande})
YEAR(date) Extrait l’année YEAR({Date d'embauche})
DATEDIF(start, end, unit) Calcule la différence entre deux dates. Unités : "Y" (années), "M" (mois), "D" (jours) DATEDIF({Date de début}, TODAY(), "D")

Fonctions conditionnelles

Fonction Description Exemple
IF(condition, true_val, false_val) Retourne l’une des deux valeurs selon une condition IF({Montant} > 100, "Haut", "Bas")
HASVALUE(colonne) Renvoie TRUE si la colonne contient une valeur valide et non vide HASVALUE({Date de naissance})

Fonctions mathématiques

Fonction Description Exemple
INT(number) Convertit en entier (tronque les décimales) INT({Prix} * 1.2)
ABS(number) Retourne la valeur absolue ABS({Solde})

Constantes booléennes

Constante Utilisation
TRUE ou TRUE() Valeur booléenne vraie
FALSE ou FALSE() Valeur booléenne fausse

7.6 Opérateurs

Catégorie Opérateurs Exemple
Arithmétique + - * / {Prix} * {Quantité}
Comparaison = <> > < >= <= {Âge} >= 18
Logique AND OR NOT {Actif} = TRUE AND {Rôle} = "Admin"

Arithmétique sur les dates. Les opérateurs + et - s’appliquent aussi aux dates :

Expression Résultat
DATE + nombre Date décalée de ce nombre de jours
DATE - nombre Date reculée de ce nombre de jours
DATE - DATE Écart entre deux dates, en jours (décimal possible)

Astuce — ajouter des minutes : Le nombre est toujours interprété en jours. Pour ajouter des minutes, divisez par 1440 (le nombre de minutes dans une journée) :

{Date de visite} + ({Durée min} / 1440)
NOW() + (30 / 1440) — dans 30 minutes

Utilisez / 24 pour des heures et / 86400 pour des secondes.

7.7 Exemples pratiques

Cas d’utilisation Expression
Total de la commande {Prix} * {Quantité}
Jours depuis la création DATEDIF({Date de création}, TODAY(), "D")
Nombre de commandes liées COUNT(#{Commandes})
CA des commandes terminées SUM(#{Commandes}.{Montant}, #{Commandes}.{Statut} = "Terminée")
Libellé d’état IF({Solde} > 0, "Actif", "Inactif")
Éléments actifs cette année {Statut} = "Active" AND YEAR({Date de création}) = YEAR(TODAY())
Lignes avec un montant valide HASVALUE({Montant})

Suivant : Import et export →