Les expressions sont utilisées pour effectuer des calculs :
- Calculs des tableaux
- Champs personnalisés
- Filtres personnalisés
Une expression est construite à partir d'une combinaison de ces éléments :
- NULL : La valeur NULL indique qu'il n'y a pas de données et peut être utile lorsque vous voulez vérifier que quelque chose est vide ou n'existe pas.
- Une constante : une constante est une valeur immuable que vous fournissez. Un nombre tel que 7 ou une chaîne de caractères telle que Complété sont des constantes.
- Un champ : Une référence à un champ, qui comprend des dimensions, des mesures et des calculs de table.
- Un opérateur : Il existe plusieurs types d'opérateurs :
Opérateurs mathématiques (tels que +, -, * et /)
Opérateurs de comparaison (tels que =, > et <=)
Opérateurs logiques (tels que AND, OR et NOT)
- Une fonction : Elles sont de même nature que les fonctions Excel, que vous connaissez peut-être déjà. Les fonctions vous permettent de transformer vos données ou les données de référence de manière complexe.
Création d'une expression
Les calculs de tableaux, les champs personnalisés et les filtres personnalisés utilisent l'éditeur d'expressions. Au fur et à mesure que vous saisissez votre expression, le système vous propose des fonctions, des opérateurs et des noms de rubriques que vous pourriez vouloir utiliser.
Les sections suivantes montrent comment utiliser l'éditeur d'expressions.
Voir toutes les suggestions
Tapez un espace pour obtenir une liste de tous les champs, fonctions et opérateurs que vous pouvez choisir. La liste est assez longue, vous devrez donc commencer à taper pour raccourcir la liste aux éléments qui vous intéressent.
Ajouter un champ
Pour inclure un champ dans votre expression, commencez à taper le nom du champ. Au fur et à mesure que vous tapez, l'éditeur réduit votre recherche à une liste de champs et de fonctions qui contiennent ce que vous avez tapé. Vous pouvez saisir le nom du champ tel qu'il apparaît sur la page Explore.
Lorsque vous sélectionnez un champ dans la liste, il est ajouté à votre expression. Cela permet de s'assurer que tous vos champs ont des noms uniques dans votre expression.
Ajout d'opérateurs
Vous pouvez ajouter des opérateurs logiques tels que AND, OR et NOT à votre expression si nécessaire. En règle générale, les opérateurs AND sont évalués avant les opérateurs OR, mais vous pouvez ignorer cette règle en utilisant des parenthèses. Vous pouvez également utiliser des opérateurs de comparaison (tels que >, = et <=) et des opérateurs mathématiques (tels que + et *).
Lorsque votre curseur se trouve sur un opérateur, vous pouvez vérifier les notes qui s'affichent à droite de votre expression dans le volet d'information pour une utilisation correcte.
L'autre point à garder à l'esprit est la manière dont les notions de vrai et de faux sont gérées. Vous devez utiliser oui et non au lieu de vrai et faux. Ces constantes logiques ne sont pas la même chose que les mots "oui" et "non", qui sont entre guillemets.

Ajout de fonctions
Pour inclure une fonction dans votre expression, commencez à taper le nom de la fonction. Au fur et à mesure que vous tapez, l'éditeur réduit votre recherche à une liste de champs et de fonctions qui contiennent ce que vous avez tapé.
Les fonctions peuvent être construites à partir d'arguments (ou variables) qui requièrent un certain type, tel qu'un champ, un nombre ou oui/non. Lorsque votre curseur se trouve sur une fonction, vous pouvez consulter les notes qui s'affichent à droite de votre expression dans le volet d'information pour savoir quels arguments vous devez fournir, et de quel type.
Pour voir la liste complète des fonctions proposées, consultez la page Fonctions et opérateurs.
Vous trouverez des instructions plus détaillées sur l'utilisation des fonctions dans la section de cette page intitulée Utilisation des fonctions.

Utilisation des conseils d'erreur et du volet d'information
Notez que lorsque vous saisissez une expression, le système affiche un volet d'information à droite. Ce volet fournit de la documentation et des suggestions, en particulier si vous avez une erreur dans votre expression.
Comme indiqué ci-dessus, l'éditeur fournit :
- Mise en évidence des erreurs : Dans l'éditeur lui-même, le système souligne en rouge les parties de l'expression qui ne sont pas encore correctes.
- Suggestions et détails des erreurs : La partie supérieure du volet d'information donne des suggestions sur ce qu'il convient d'ajouter ensuite dans votre expression. En cas d'erreur, il en explique la raison. S'il y a plusieurs erreurs, l'erreur qui s'affiche est basée sur l'emplacement de votre curseur.
- Documentation : Dans la partie inférieure du volet d'information, le système affiche la documentation relative à la fonction ou à l'opérateur que vous utilisez, en fonction de la position de votre curseur. Par exemple, lorsque vous saisissez le premier argument d'une fonction if(), le système fournit l'information selon laquelle le premier argument doit être évalué comme vrai ou faux. Vous pouvez cliquer sur le nom de la fonction dans cette section pour accéder à la documentation de cette fonction.

Y compris les commentaires
Vous pouvez inclure des commentaires dans les expressions en commençant la ligne de commentaire par # :
Utilisation des champs
Il arrive que vous souhaitiez utiliser la valeur d'un champ (une dimension, une mesure ou un calcul de table) dans une expression. Vous pouvez vouloir ajouter la valeur du champ à quelque chose d'autre, vérifier qu'il a une certaine valeur, l'inclure dans une fonction, ou bien d'autres possibilités.
Comme décrit ci-dessus, il suffit de saisir le nom du champ dans l'éditeur d'expressions, et le système vous aidera à trouver la manière correcte de le référencer. Lorsque vous ajoutez un champ à une expression, le système utilise l'identifiant du champ, qui ressemble à ${view_name.field_name}. Cet identifiant ne correspond pas toujours au nom du champ dans le sélecteur de champs, mais ce n'est pas grave si vous ne savez pas de quoi il s'agit. Saisissez simplement le nom du champ tel qu'il apparaît dans le sélecteur de champs, et l'éditeur d'expressions vous affichera le nom du sélecteur de champs et l'identifiant ensemble.
Il existe plusieurs façons de récupérer une valeur :
- Récupérer une valeur de la même ligne : La méthode la plus simple pour utiliser un champ consiste à y faire référence directement. Par exemple, votre expression pourrait utiliser ${product.category}. Lorsque vous faites cela, vous dites : « Pour chaque ligne donnée, récupérez la catégorie de produit de cette ligne. »
- Récupérer la valeur d'une autre ligne : Vous pouvez également récupérer la valeur d'un champ à partir d'une autre ligne. Par exemple, vous pourriez vouloir la logique suivante : « pour chaque ligne donnée, récupérer la catégorie de produit de la ligne précédente. » Pour ce faire, vous pouvez utiliser une fonction de décalage (voir une liste des fonctions positionnelles ici). Cela pourrait ressembler à ceci : offset(${product.category}, -1).
- Obtenez une valeur à partir d’une colonne pivotée : Vous pouvez aussi obtenir des valeurs à partir de colonnes pivotées. Par exemple, vous pourriez vouloir la logique « pour une ligne donnée, prenez le Total Sales depuis la première colonne pivotée ». Pour travailler avec des colonnes pivotées, vous devrez utiliser des fonctions pivot (voir la liste des fonctions pivot ici). Cela pourrait ressembler à ceci : pivot_index${alert_event.event_count}, 1).
- Obtenir un total à partir d'une ligne ou d'une colonne : si vous avez ajouté des totaux à votre Explore, vous pouvez obtenir les valeurs totales de la colonne ou de la ligne en ajoutant :total (pour les totaux de colonne) ou :row_total (pour les totaux de ligne) au nom du champ, en utilisant le format ${field_name:total}. Par exemple, si vous souhaitez obtenir un pourcentage du nombre total d'alertes, vous pouvez créer un calcul de table comme celui-ci : ${alert_event.event_count} / ${alert_event.event_count:total}.
Utilisation des fonctions
Les expressions comprennent souvent une ou plusieurs fonctions, qui vous aident à récupérer certaines données ou à effectuer certains calculs. Elles sont de même nature que les fonctions d'Excel.
Si vous n'êtes pas familier avec les fonctions, elles se présentent sous la forme d'un nom suivi de deux parenthèses, comme ceci : ma_fonction(). Parfois, vous devrez fournir des informations entre ces parenthèses, séparées par des virgules. Ces informations sont appelées "arguments" et ressemblent à ceci : ma_fonction(argument_1, argument_2).
Par exemple, la fonction now ne prend aucun argument et vous donne la date et l'heure actuelles. Vous l'utiliserez comme suit : now().
En revanche, la fonction round prend un argument, qui est un nombre. Vous l'utiliseriez comme suit : round(3.2). Le résultat que vous obtiendrez est 3.
Il y a deux façons de savoir quels arguments vous devrez fournir, le cas échéant :
- Le volet d'information qui apparaît à droite de l'éditeur d'expression fournit de la documentation sur la fonction que vous êtes en train d'écrire.
- Vous pouvez également accéder directement à la page Fonctions et opérateurs et rechercher la fonction que vous souhaitez utiliser.
Pour consolider ce concept, considérez la fonction contains dont la documentation ressemble à ceci :
| FUNCTION | SYNTAX | PURPOSE |
|---|---|---|
| contains | contains (string, search_string) | Retourne Oui si la chaîne contient search_string, et Non sinon |
Vous pouvez constater que deux arguments sont nécessaires. Elles portent les noms string et search_string, mais cela ne signifie pas que vous devez saisir les mots exacts "string" et "search_string" dans la fonction. Il s'agit simplement de noms pour les arguments que vous remplacerez par quelque chose. En lisant l'objectif, nous voyons que string doit être un champ ou une autre valeur dans laquelle nous voulons effectuer une recherche, tandis que search_string est la chose que nous voulons rechercher. Voici un exemple :
Si le mot "excellent" apparaît dans les commentaires des clients, cette fonction donnera le résultat "oui", sinon elle donnera le résultat "non".
La dernière chose à savoir est que vous pouvez placer des fonctions à l'intérieur d'autres fonctions pour gérer toute logique complexe que vous souhaitez. Tant que le résultat de la fonction interne est adapté aux arguments de la fonction externe, cela fonctionne. Par exemple :

Ici, la fonction is_null est imbriquée dans une fonction if, elle-même imbriquée dans une fonction contains. Le fonctionnement est le suivant :
La fonction is_null() vérifie si nous disposons ou non d'un texte d'évaluation du client.
Ensuite, la fonction if() utilise ce résultat et renvoie le texte du feedback du client si nous l'avons, ou sinon renvoie le texte du commentaire du client.
Enfin, la fonction contains() utilise le texte renvoyé par la fonction if() et y recherche le mot "great".
Si l'on met tout cela bout à bout, cette expression signifie logiquement : "Si nous disposons d'un retour d'information de la part des clients, recherchez-le, mais si nous n'en disposons pas, recherchez plutôt les commentaires des clients". Dans les deux cas, cherchez le mot "grand" ".

