Aller au contenu principal

Référence des formules et fonctions

Utilisez ces expressions dans l’éditeur d’une propriété calculée. Les noms de fonctions restent en anglais et en majuscules dans les deux langues de l’interface. Les formules utilisent les références Boldo, pas des cellules de tableur.

Insérer les références des exemples​

Dans cette page, @Coût, @Allocation et les noms similaires sont des repères lisibles, pas des références à coller telles quelles.

  1. Saisissez la fonction ou l’expression autour de la référence nécessaire.
  2. Tapez @ à son emplacement, puis sélectionnez la propriété réelle et, si nécessaire, la relation et son sens.
  3. Terminez l’expression et attendez la validation de son type de résultat.
  4. Enregistrez et comparez le résultat à des valeurs sources connues.

Par exemple, ROUND(@Coût annuel / 12, 2) utilise une propriété numérique locale insérée avec @. Pour additionner des coûts liés, choisissez la propriété de coût via une relation et utilisez SUM(@Coût lié).

Sélectionner Nombre de relations insère déjà COUNT(...). Pour compter les actifs distincts, remplacez le nom de fonction par COUNT_DISTINCT en conservant la référence de relation insérée.

Syntaxe et opérateurs​

Utilisez un point décimal (12.5), des virgules entre arguments et des guillemets doubles pour le texte ("production"). Les booléens s’écrivent true et false. Dans un texte entre guillemets, échappez un guillemet avec \" et un antislash avec \\.

Les opérateurs arithmétiques sont +, -, * et /. Les comparaisons sont =, !=, <, <=, > et >=. Les opérateurs logiques sont AND, OR et NOT ; écrivez a AND b, pas AND(a, b).

De la priorité la plus faible à la plus forte : OR, AND, NOT, comparaison, addition/soustraction, multiplication/division, moins unaire. Utilisez des parenthèses pour expliciter le regroupement souhaité. Écrivez (@Coût > 0) AND (@Coût < 100), pas 0 < @Coût < 100.

Les opérateurs % et ^ n’existent pas : utilisez MOD ou POW. ==, le = initial d’un tableur et les noms de cellules arbitraires ne sont pas reconnus. Le texte n’est pas converti implicitement en nombre : "12" + 3 est invalide.

Une formule accepte au maximum 2 000 caractères, 50 références et 64 niveaux d’imbrication syntaxique. Les dépendances calculées ont une limite distincte de dix niveaux et ne peuvent pas former de cycle.

Fonctions numériques​

FonctionSens et exemple
ROUND(n) ou ROUND(n, décimales)Arrondir, à zéro décimale par défaut. ROUND(12.345, 2) → 12,35 ; ROUND(-1.5) → -2.
CEIL(n)Arrondir vers le haut : CEIL(-1.2) → -1.
FLOOR(n)Arrondir vers le bas : FLOOR(-1.2) → -2.
ABS(n)Valeur absolue : ABS(-8) → 8.
POW(base, exposant)Puissance : POW(2, 3) → 8. Un résultat inexploitable ou infini devient vide.
MOD(dividende, diviseur)Reste : MOD(7, 3) → 1 ; MOD(-7, 3) → -1. Un diviseur nul donne un résultat vide.
MIN(a, b, ...), MAX(a, b, ...)Minimum/maximum d’au moins deux nombres ou dates compatibles. Les valeurs absentes des arguments sont ignorées.

ROUND tronque son nombre de décimales à l’entier et le borne entre -15 et 15. Un nombre négatif arrondit aux dizaines, centaines, etc. Les demi-valeurs sont arrondies en s’éloignant de zéro.

Les résultats Devise et Pourcentage sont arrondis à deux décimales. Les Scores sont arrondis à l’entier et bornés entre zéro et leur maximum configuré. Aucune conversion automatique de devise ou d’unité de pourcentage n’est effectuée.

Conditions, textes et sélections​

FonctionSens et limite
IF(condition, oui, non)Condition booléenne et branches de types compatibles. Une condition absente donne un résultat vide.
COALESCE(a, b, ...)Première valeur non absente, avec au moins deux arguments compatibles. Zéro, false et le texte vide sont des valeurs.
ISNULL(valeur)Vrai si la valeur est absente.
CONCAT(a, b, ...)Joindre au moins deux valeurs simples en texte ; nombres et booléens deviennent du texte. Une valeur absente rend le résultat vide.
UPPER(texte), LOWER(texte)Passer en majuscules ou minuscules.
LIST(...)Construire une sélection multiple depuis des clés ou sélections ; dédoublonner en conservant l’ordre de première occurrence. LIST() est vide.
CONTAINS(sélection, "clé")Tester l’appartenance d’une clé exacte, écrite entre guillemets, à une sélection multiple. Ce n’est pas une recherche dans un texte.

Pour un résultat Liste, IF(@Critique, "critical", "normal") exige les clés critical et normal parmi les choix autorisés. Pour Liste multiple, utilisez LIST("critical", "review"). CONTAINS(@Étiquettes, "critical") produit un Booléen.

Une clé comparée à une propriété Liste ou utilisée dans CONTAINS doit appartenir aux choix de cette propriété source. Si vous recopiez une Liste ou Liste multiple dans un résultat calculé, tous ses choix possibles doivent exister côté résultat, même ceux non sélectionnés actuellement.

Les deux branches d’un IF multiple doivent être des sélections : IF(@Critique, LIST("review"), LIST()). Utilisez COALESCE(@Étiquettes, LIST()) pour transformer une sélection absente en sélection vide. LIST produit lui-même un résultat absent si un argument manque ; sélection vide et valeur absente sont distinctes.

Fonctions de dates​

DATE("2026-01-31") crée une date fixe. Son seul argument doit être un texte entre guillemets au format AAAA-MM-JJ, représentant une date réelle. DATE(2026, 1, 31) et DATE("2026-02-30") sont invalides.

YEAR(date), MONTH(date) et DAY(date) extraient l’année, le mois de 1 à 12 et le jour du mois. Par exemple, MONTH(DATE("2026-01-31")) donne 1.

DATEDIFF(début, fin, "days") compte les jours calendaires du début à la fin. Les unités sont exactement "days", "months" ou "years" ; les deux dernières comptent les mois ou années entiers. Inverser les dates peut produire un résultat négatif.

DATEADD(date, quantité, "months") décale une date avec les mêmes trois unités. La quantité est tronquée à l’entier. Les décalages de mois/années s’adaptent à la fin du mois cible : le 31 janvier 2026 plus un mois donne le 28 février.

TODAY() et NOW() ne sont pas disponibles. Les calculs réagissent aux écritures des sources et ne peuvent pas suivre automatiquement la date du jour. Comparez plutôt des propriétés de date ou une date fixe.

Relations et agrégats​

Une propriété locale fournit une valeur. Une propriété sélectionnée via une relation fournit une série, avec une entrée par relation. Utilisez un agrégat pour obtenir un seul résultat. Ces agrégats sont disponibles pour les propriétés calculées d’actifs, pas celles des relations.

FonctionArgument accepté et résultat
SUM(série)Série numérique ; valeurs absentes ignorées ; série vide → 0.
AVG(série)Série numérique ; valeurs absentes ignorées ; aucune valeur disponible → vide.
MIN(série), MAX(série)Série numérique ou de dates ; valeurs absentes ignorées ; aucune valeur disponible → vide.
COUNT(relation)Nombre de relations, y compris les liens parallèles.
COUNT(expression)Nombre de résultats non absents d’une expression sur un chemin de relation. Zéro et false comptent.
COUNT_DISTINCT(relation)Nombre d’actifs liés distincts. Accepte la référence de nombre de relations, pas une propriété ou une expression arbitraire.

SUM(1, 2) est invalide ; utilisez 1 + 2. MIN(3) est invalide car la forme à un argument attend une série ; MIN(3, 8) est valide.

Deux liens parallèles de A vers B donnent COUNT = 2 et COUNT_DISTINCT = 1. Si B coûte 100, sommer son coût via ces liens donne 200. Pour une allocation pondérée, utilisez SUM(@Coût lié * @Allocation / 100), avec les deux références issues du même chemin de relation et Allocation exprimée de 0 à 100.

COUNT(@Coût lié > 100) compte les résultats false comme true. Pour compter uniquement les correspondances, utilisez SUM(IF(@Coût lié > 100, 1, 0)).

Vous ne pouvez pas combiner des séries de chemins différents dans une même expression calculée relation par relation. Agrégez-les séparément avant de combiner leurs totaux. Les sélections multiples ne sont pas des séries numériques de relations.

Valeurs absentes​

Une source absente se propage généralement en résultat vide. Division par zéro et résultat numérique non fini donnent également un résultat vide. COALESCE(@Coût, 0) remplace explicitement l’absence par zéro ; ISNULL(@Coût) la teste. Il n’existe pas de littéral null à saisir dans une formule.

Une comparaison avec une valeur absente donne un résultat vide, même avec = ou !=. Dans une expression logique, false AND absent donne false, et true OR absent donne true. Les autres combinaisons peuvent rester inconnues. Utilisez ISNULL ou COALESCE si votre règle métier exige une réponse explicite.

CONCAT n’ignore pas silencieusement les parties absentes. CONCAT("Coût : ", COALESCE(@Coût, 0)) prévoit un remplacement, alors que CONCAT("Coût : ", @Coût) reste vide si Coût manque. Ces choix explicites distinguent une source incomplète d’un véritable zéro.