Formules
Les champs Formule dans les boards Copera vous permettent de créer des colonnes calculées qui dérivent automatiquement leurs valeurs à partir d'autres données de vos lignes. Propulsé par le Copera Formula Engine -- un langage de formules dédié avec son propre analyseur et évaluateur -- vous pouvez construire tout, des arithmétiques simples à la logique conditionnelle complexe et aux calculs de dates.
Vue d'ensemble du langage de formules
Les formules Copera utilisent une syntaxe similaire aux formules de tableur. Chaque formule est évaluée par ligne, avec accès à toutes les valeurs de colonnes de cette même ligne. Le moteur de formules prend en charge :
- Opérateurs arithmétiques :
+,-,*,/pour les opérations mathématiques - Concaténation de chaînes :
&pour joindre des valeurs textuelles - Opérateurs de comparaison :
=,!=,>,<,>=,<= - Opérateurs logiques :
AND,OR,NOTpour combiner des conditions - Références de champs : Référencez d'autres colonnes en entourant le nom de la colonne d'accolades, par ex.
{Column Name} - Fonctions imbriquées : Les fonctions peuvent être utilisées comme arguments d'autres fonctions
Syntaxe de base
{Price} * {Quantity}
Cette formule multiplie la valeur de la colonne « Price » par la colonne « Quantity » pour chaque ligne.
IF({Status} = "Done", "Complete", "Pending")
Cette formule renvoie « Complete » lorsque la colonne Status est égale à « Done », et « Pending » sinon.
Référence des fonctions
Le Copera Formula Engine fournit plus de 100 fonctions organisées dans les catégories suivantes. Voici une référence des fonctions les plus couramment utilisées.
Fonctions mathématiques
| Fonction | Description | Exemple |
|---|---|---|
ABS(number) | Valeur absolue | ABS({Balance}) |
CEIL(number) | Arrondir à l'entier supérieur | CEIL({Score} / 10) |
FLOOR(number) | Arrondir à l'entier inférieur | FLOOR({Price}) |
ROUND(number, decimals) | Arrondir au nombre de décimales spécifié | ROUND({Average}, 2) |
MIN(a, b, ...) | Plus petite valeur | MIN({Estimate}, {Budget}) |
MAX(a, b, ...) | Plus grande valeur | MAX({Score1}, {Score2}) |
SUM(a, b, ...) | Somme des valeurs | SUM({Q1}, {Q2}, {Q3}, {Q4}) |
AVERAGE(a, b, ...) | Moyenne arithmétique | AVERAGE({Test1}, {Test2}) |
MOD(number, divisor) | Reste de la division | MOD({Row Number}, 2) |
POWER(base, exponent) | Élévation à une puissance | POWER({Side}, 2) |
SQRT(number) | Racine carrée | SQRT({Area}) |
Fonctions de texte
| Fonction | Description | Exemple |
|---|---|---|
CONCAT(a, b, ...) | Joindre des valeurs textuelles | CONCAT({First Name}, " ", {Last Name}) |
LEFT(text, count) | Extraire depuis le début | LEFT({Code}, 3) |
RIGHT(text, count) | Extraire depuis la fin | RIGHT({Phone}, 4) |
MID(text, start, count) | Extraire depuis le milieu | MID({ID}, 2, 4) |
LEN(text) | Nombre de caractères | LEN({Description}) |
LOWER(text) | Convertir en minuscules | LOWER({Email}) |
UPPER(text) | Convertir en majuscules | UPPER({Code}) |
TRIM(text) | Supprimer les espaces de début/fin | TRIM({Input}) |
REPLACE(text, old, new) | Remplacer des occurrences | REPLACE({URL}, "http", "https") |
SEARCH(find, text) | Trouver la position d'une sous-chaîne | SEARCH("@", {Email}) |
Fonctions de date
Le moteur de formules s'intègre à une bibliothèque de dates étendue, vous donnant accès à de puissantes fonctions de manipulation et de comparaison de dates.
| Fonction | Description | Exemple |
|---|---|---|
TODAY() | Date du jour | TODAY() |
NOW() | Date et heure actuelles | NOW() |
YEAR(date) | Extraire l'année | YEAR({Created}) |
MONTH(date) | Extraire le mois (1-12) | MONTH({Due Date}) |
DAY(date) | Extraire le jour du mois | DAY({Birthday}) |
WEEKDAY(date) | Jour de la semaine (0-6) | WEEKDAY({Start Date}) |
WEEKNUM(date) | Numéro de semaine de l'année | WEEKNUM({Created}) |
QUARTER(date) | Trimestre (1-4) | QUARTER({Close Date}) |
DATEADD(date, count, unit) | Ajouter du temps à une date | DATEADD({Start}, 14, "days") |
DATEDIFF(date1, date2, unit) | Différence entre des dates | DATEDIFF({Start}, {End}, "days") |
IS_BEFORE(date1, date2) | Vérifier si date1 est avant date2 | IS_BEFORE({Due Date}, TODAY()) |
IS_AFTER(date1, date2) | Vérifier si date1 est après date2 | IS_AFTER({Due Date}, TODAY()) |
IS_SAME_DAY(date1, date2) | Vérifier si c'est le même jour | IS_SAME_DAY({Created}, TODAY()) |
IS_TODAY(date) | Vérifier si la date est aujourd'hui | IS_TODAY({Due Date}) |
IS_WEEKEND(date) | Vérifier si la date tombe un week-end | IS_WEEKEND({Delivery Date}) |
START_OF_MONTH(date) | Premier jour du mois | START_OF_MONTH({Date}) |
END_OF_MONTH(date) | Dernier jour du mois | END_OF_MONTH({Date}) |
START_OF_WEEK(date) | Premier jour de la semaine | START_OF_WEEK({Date}) |
END_OF_WEEK(date) | Dernier jour de la semaine | END_OF_WEEK({Date}) |
ADD_BUSINESS_DAYS(date, days) | Ajouter uniquement des jours ouvrés | ADD_BUSINESS_DAYS({Start}, 5) |
DIFF_BUSINESS_DAYS(d1, d2) | Jours ouvrés entre des dates | DIFF_BUSINESS_DAYS({Start}, {End}) |
Fonctions logiques
| Fonction | Description | Exemple |
|---|---|---|
IF(condition, then, else) | Valeur conditionnelle | IF({Amount} > 1000, "High", "Low") |
SWITCH(expr, val1, result1, ...) | Correspondre à plusieurs valeurs | SWITCH({Priority}, "P0", "Critical", "P1", "High", "Normal") |
AND(a, b, ...) | Vrai si toutes les conditions sont vraies | AND({Complete}, {Approved}) |
OR(a, b, ...) | Vrai si une condition est vraie | OR({Urgent}, {Overdue}) |
NOT(value) | Inverser un booléen | NOT({Archived}) |
ISBLANK(value) | Vérifier si vide | ISBLANK({Notes}) |
Exemples de formules courantes
Concaténer des noms
CONCAT({First Name}, " ", {Last Name})
Combine les colonnes prénom et nom avec un espace entre les deux.
Calculer les jours jusqu'à l'échéance
DATEDIFF(TODAY(), {Due Date}, "days")
Renvoie le nombre de jours restants jusqu'à la date d'échéance. Les valeurs négatives indiquent des éléments en retard.
Libellés de statut conditionnels
IF(IS_BEFORE({Due Date}, TODAY()), "Overdue",
IF(DATEDIFF(TODAY(), {Due Date}, "days") <= 3, "Due Soon", "On Track"))
Renvoie « Overdue » pour les éléments en retard, « Due Soon » pour les éléments dus dans les 3 jours, et « On Track » pour le reste.
Calcul de pourcentage
ROUND({Completed Tasks} / {Total Tasks} * 100, 1)
Calcule le pourcentage d'achèvement arrondi à une décimale.
Jours ouvrés restants
DIFF_BUSINESS_DAYS(TODAY(), {Deadline})
Calcule le nombre de jours ouvrés (hors week-ends) entre aujourd'hui et une échéance.
Gestion des erreurs
Lorsqu'une formule contient des erreurs, Copera affiche un indicateur d'erreur dans la cellule au lieu d'une valeur. Les erreurs courantes incluent :
- Erreurs de syntaxe -- Parenthèses non appariées, opérateurs manquants ou noms de fonctions non reconnus.
- Incompatibilités de type -- Tentative d'arithmétique sur des valeurs textuelles ou d'opérations de date sur des nombres.
- Références nulles -- Référence à une colonne sans valeur dans la ligne actuelle. Utilisez
ISBLANK()pour gérer gracieusement les champs optionnels. - Division par zéro -- Division par une colonne contenant zéro. Encadrez avec un
IFpour vérifier :IF({Total} = 0, 0, {Part} / {Total}).
L'éditeur de formules affiche un aperçu en direct du résultat au fur et à mesure de la saisie, facilitant la détection et la correction des erreurs avant l'enregistrement.
Création de formules assistée par l'IA
Si vous ne savez pas comment écrire une formule, Copera propose un assistant de formules propulsé par l'IA. Décrivez ce que vous voulez calculer en langage naturel, et l'assistant générera une formule pour vous. Vous pouvez revoir, modifier et affiner la suggestion avant de l'appliquer à votre colonne.
Prochaines étapes
- Découvrez les Champs calculés pour comprendre en profondeur les champs Formula, Function et Tracker.
- Configurez des Automatisations qui se déclenchent en fonction des résultats de formules.
- Utilisez Filtres et tri pour filtrer les lignes par valeurs de colonnes de formule.