Fonctions de tableaux
Les fonctions de tableaux vous permettent de manipuler des listes de données : calculer des sommes, filtrer des éléments, transformer des valeurs, et plus encore.
Agrégation
Ces fonctions réduisent un tableau à une seule valeur.
SOMME(tableau)
Calcule la somme de tous les éléments d'un tableau numérique.
SOMME([10, 20, 30]) // 60
SOMME([1.5, 2.5, 3]) // 7
SOMME({{commande.produits.prixHT}}) // Somme des prix HTBon à savoir : SOMME([])sur un tableau vide retourne 0.
MOYENNE(tableau)
Calcule la moyenne arithmétique des éléments d'un tableau.
MOYENNE([10, 20, 30]) // 20
MOYENNE([100, 80, 90, 70]) // 85
MOYENNE({{produits.notes}}) // Note moyenneMAX(tableau) ou MAX(a, b, c...)
Retourne la valeur maximale. Fonctionne avec un tableau ou plusieurs arguments.
MAX([5, 2, 8, 1]) // 8
MAX(10, 20, 5) // 20
MAX({{produits.stock}}) // Stock le plus élevéBon à savoir : MAX([])sur un tableau vide retourne 0.
COMPTER(valeur)
Retourne le nombre d'éléments dans un tableau ou de caractères dans une chaîne.
COMPTER([1, 2, 3, 4, 5]) // 5
COMPTER("Bonjour") // 7
COMPTER({{commande.produits}}) // Nombre de produitsFiltrage et recherche
Ces fonctions permettent de sélectionner des éléments selon des critères.
FILTRER(tableau, condition)
Retourne un nouveau tableau contenant uniquement les éléments qui satisfont la condition. Utilisez {{$}} pour référencer l'élément courant.
// Filtrer les nombres supérieurs à 10
FILTRER([5, 15, 8, 20, 3], {{$}} > 10) // [15, 20]
// Filtrer les produits en stock
FILTRER({{produits}}, {{$.stock}} > 0)
// Filtrer les commandes validées
FILTRER({{commandes}}, {{$.statut}} == "validée")
// Condition multiple
FILTRER({{produits}}, {{$.prix}} > 50 ET {{$.stock}} > 0)Astuce : {{$}} représente l'élément courant pendant l'itération. Pour accéder à ses champs, utilisez {{$.nomChamp}}.
TROUVER(tableau, condition)
Retourne le premier élément qui satisfait la condition, ou false si aucun n'est trouvé.
// Trouver le premier nombre pair
TROUVER([1, 3, 4, 7, 8], {{$}} % 2 == 0) // 4
// Trouver le premier produit en rupture
TROUVER({{produits}}, {{$.stock}} == 0)
// Trouver une commande spécifique
TROUVER({{commandes}}, {{$.numero}} == "CMD-001")Attention : Cette fonction retourne false si aucun élément n'est trouvé, pas un tableau vide. Pensez à gérer ce cas avec une condition.
MEILLEUR(tableau, clé) ou MEILLEUR(tableau, clé, "asc")
Retourne l'élément qui possède la valeur maximale d'une clé donnée. Passez "asc" en troisième argument pour obtenir le minimum à la place. Utilisez {{$}} pour référencer l'élément courant.
// Le plus grand nombre
MEILLEUR([3, 1, 5, 2], {{$}}) // 5
// Le plus petit nombre
MEILLEUR([3, 1, 5, 2], {{$}}, "asc") // 1
// Le projet le plus rentable
MEILLEUR(CHERCHER.OBJETS(project, {}), {{$.chiffreAffaires}})
// Le nom du produit le moins cher
MEILLEUR({{produits}}, {{$.prix}}, "asc").nomBon à savoir : MEILLEUR retourne l'élément complet, pas la valeur de la clé. Sur un tableau vide, elle retourne null. Les éléments dont la clé est null sont ignorés.
UNIQUE(tableau)
Élimine les doublons et retourne un tableau avec des valeurs uniques.
UNIQUE([1, 1, 2, 3, 3, 3, 4]) // [1, 2, 3, 4]
UNIQUE(["a", "b", "a", "c"]) // ["a", "b", "c"]
UNIQUE({{commande.produits.tva}}) // Taux de TVA uniquesTransformation
Ces fonctions créent de nouveaux tableaux en transformant chaque élément.
TRANSFORMER(tableau, expression)
Applique une transformation à chaque élément et retourne un nouveau tableau. Utilisez {{$}} pour référencer l'élément courant.
// Doubler chaque nombre
TRANSFORMER([1, 2, 3], {{$}} * 2) // [2, 4, 6]
// Extraire un champ de chaque objet
TRANSFORMER({{produits}}, {{$.nom}}) // ["Produit A", "Produit B", ...]
// Calculer le TTC de chaque produit
TRANSFORMER({{produits}}, {{$.prixHT}} * 1.20)
// Formater chaque valeur
TRANSFORMER([10, 20, 30], CONCAT({{$}}, " €")) // ["10 €", "20 €", "30 €"]TRIER(tableau) ou TRIER(tableau, clé)
Trie un tableau en ordre croissant. Sans clé, trie directement les éléments (nombres, dates ou texte). Avec une clé, trie selon la valeur renvoyée par l'expression pour chaque élément. Utilisez {{$}} pour référencer l'élément courant.
// Trier des nombres
TRIER([5, 2, 8, 1, 9]) // [1, 2, 5, 8, 9]
// Trier du texte par ordre alphabétique
TRIER(["banane", "abricot", "cerise"]) // ["abricot", "banane", "cerise"]
// Trier des objets par un champ
TRIER({{produits}}, {{$.prix}}) // Produits triés par prix croissant
TRIER({{commandes}}, {{$.date}}) // Commandes triées par date
TRIER({{élèves}}, {{$.nom}}) // Élèves triés par nom alphabétiqueManipulation
Ces fonctions permettent de combiner, découper ou assembler des tableaux.
CONCAT(arg1, arg2, ...)
Concatène des chaînes, nombres ou tableaux. Très polyvalent !
// Concaténer des chaînes
CONCAT("Bonjour ", "Constance") // "Bonjour Constance"
// Mélanger texte et nombres
CONCAT("Total : ", 150, " €") // "Total : 150 €"
// Concaténer des tableaux
CONCAT([1, 2], [3, 4]) // [1, 2, 3, 4]JOINDRE(tableau, séparateur)
Joint les éléments d'un tableau en une chaîne avec un séparateur.
JOINDRE(["a", "b", "c"], ", ") // "a, b, c"
JOINDRE(["Paris", "Lyon", "Marseille"], " - ") // "Paris - Lyon - Marseille"
JOINDRE({{produit.categories}}, ", ") // "Catégorie1, Catégorie2"COUPER(texteOuTableau, nombre, depuis?)
Extrait une portion d'une chaîne ou d'un tableau.
// Extraire les 3 premiers caractères
COUPER("Bonjour", 3) // "Bon"
// Extraire 4 caractères depuis la position 3
COUPER("Bonjour", 4, 3) // "jour"
// Extraire les 2 premiers éléments
COUPER([1, 2, 3, 4, 5], 2) // [1, 2]
// Limiter la longueur d'un nom
COUPER({{client.nom}}, 20)ZIP(tableau1, tableau2)
Entrelace deux tableaux en alternant leurs éléments.
ZIP([1, 3, 5], [2, 4, 6]) // [1, 2, 3, 4, 5, 6]
ZIP(["a", "c"], ["b", "d"]) // ["a", "b", "c", "d"]Exemples combinés
En pratique, vous combinerez souvent plusieurs fonctions. Voici des exemples réalistes.
Calculer le total d'une commande
var lignes = {{commande.produits}};
var sousTotal = TRANSFORMER(lignes, {{$.quantite}} * {{$.prixUnitaire}});
SOMME(sousTotal)Trouver les produits à réapprovisionner
var produits = {{magasin.produits}};
var enRupture = FILTRER(produits, {{$.stock}} < {{$.stockMinimum}});
var noms = TRANSFORMER(enRupture, {{$.nom}});
JOINDRE(noms, ", ")Résultat : "Produit A, Produit C, Produit F"
Calculer la TVA par taux
var produits = {{commande.produits}};
var tauxUniques = UNIQUE(TRANSFORMER(produits, {{$.tva}}));
TRANSFORMER(tauxUniques,
CONCAT(
"TVA ", {{$}}, "% : ",
SOMME(
TRANSFORMER(
FILTRER(produits, {{$.tva}} == {{$1}}),
{{$.prixHT}} * {{$.tva}} / 100
)
),
" €"
)
)Résultat : ["TVA 5.5% : 12.50 €", "TVA 20% : 45.00 €"]
Prochaine étape
Découvrez maintenant les fonctions de manipulation de dates pour travailler avec des échéances, des périodes et des calendriers.