Création d’expressions
À propos de la création d’expressions
Les expressions sont utilisées dans XM Discover pour filtrer vos données et transformer les champs de données. Par exemple, vous pouvez utiliser des expressions pour modifier la mise en forme du champ de date, évaluer les données pour les enregistrements vides et effectuer des calculs mathématiques.
Les expressions peuvent contenir 4 composants :
- Constantes: vous pouvez utiliser des nombres constants, des chaînes de texte et des dates pour effectuer des opérations mathématiques et de comparaison.
- Champs: vous pouvez utiliser les champs numériques, textuels et de date disponibles via un connecteur de données spécifique pour effectuer des opérations mathématiques et de comparaison sur ces champs.
- Fonctions: vous pouvez utiliser des fonctions pour effectuer des transformations sur vos zones et constantes.
- Opérateurs: vous pouvez utiliser des opérateurs pour effectuer des opérations mathématiques et comparer vos champs et vos constantes.
Constantes
Les constantes sont des nombres, des chaînes de texte et des dates que vous pouvez utiliser pour effectuer des opérations mathématiques et des comparaisons. Par exemple, vous pouvez utiliser une date constante, telle que la date à laquelle vous avez lancé votre enquête CX annuelle, pour calculer l’ancienneté de la réponse d’un répondant à l’enquête.
Remarques sur l’utilisation de constantes :
- Les chaînes de texte sont traitées comme sensibles à la casse. Utilisez les fonctions UPPER ou LOWER comme solution de contournement pour la sensibilité à la casse.
- Les chaînes de texte et les dates doivent être placées entre guillemets.
- Les nombres n’ont pas besoin de guillemets (un nombre entre guillemets est traité comme du texte).
Champs
Les zones sont les zones de données disponibles à partir de votre connecteur de données d’entrée. Cela inclut les champs numériques, de chaîne de texte et de date, que vous pouvez utiliser pour effectuer des opérations mathématiques et des comparaisons. Par exemple, si votre ensemble de données contient une zone pour la date d’anniversaire d’un client, vous pouvez calculer l’ancienneté du client.
Pour ajouter un champ, faites-le glisser de la section Champs vers la zone Expression.
Les types de zones sont étiquetés avec les icônes suivantes :
Fonctions
Vous pouvez utiliser les fonctions numériques, de texte et de date répertoriées dans cette section.
Pour ajouter une fonction, faites-la glisser de la section Fonctions vers la zone Expression.
Les types de fonction sont étiquetés avec les icônes suivantes :
ABS
Renvoie la valeur absolue d’un nombre.
Syntaxe : ABS(nombre)
COALESCE
Renvoie la première valeur non nulle d’une liste.
Syntaxe : COALESCE(valeur1, valeur2, valeur3)
CROISSANCE
Renvoie la valeur arrondie à la valeur supérieure d’un nombre.
Syntaxe : CEILING(nombre)
CONCAT
Regroupe plusieurs chaînes de texte en une seule.
Syntaxe : CONCAT(“chaîne 1”, “chaîne 2”, “chaîne 3”)
CONTIENT
Renvoie Vrai si une chaîne de texte (“dans le texte”) contient une autre chaîne de texte (“rechercher du texte”). Sinon, renvoie Faux.
Syntaxe : CONTAINS(“inside text”, “find text”)
CONVERT_TO_TIMEZONE
Convertit la date et l’heure d’un fuseau horaire à un autre.
Syntaxe : CONVERT_TO_TIMEZONE(“date et heure”, “fuseau horaire à convertir de”, “fuseau horaire à convertir en”)
Notes sur le formatage de la date :
- Indiquez les fuseaux horaires à l’aide de leurs noms de base de données tz.
- Indiquez la date et l’heure dans la norme ISO 8601 ou sous la forme aaaa-mm-jj hh:mm:ss.
- Si la date et l’heure sont fournies avec des informations sur le fuseau horaire, elles sont ignorées au profit du paramètre “Fuseau horaire à partir duquel convertir”.
- La date convertie utilise le format ISO 8601. Utilisez la fonction TODATE si vous devez la modifier.
DATETONUMBER
Convertit un champ de date en horodatage Unix.
Syntaxe : DATETONUMBER(“date”)
DATETOTEXT
Convertit un champ de date en chaîne de date au format demandé.
Syntaxe : DATETOTEXT(“date”, “format de date”)
DAYOFWEEK
Renvoie le jour de la semaine correspondant à une date.
Syntaxe : DAYOFWEEK(“date”)
DYNAMICLOOKUP
Remplace les valeurs du champ à l’aide d’une table de recherche chargée dynamiquement. Les valeurs de recherche sont reprises du champ spécifié dans le premier argument (“nom du champ”).
Syntaxe : DYNAMICLOOKUP(“nom du champ”, “valeur”)
ELEMENTOFARRAY
Extrayez la n-ième valeur d’un tableau, puis mappez les valeurs du tableau aux attributs dans XM Discover.
Syntaxe : ELEMENTOFARRAY([“élément de tableau 1”, “élément de tableau 2”, “élément de tableau 3”], nombre)
Notes:
- Si l’entrée n’est pas un tableau, la fonction renvoie une erreur.
- Si le nombre est supérieur à la taille d’un tableau, la fonction renvoie une valeur nulle. Les nombres dans l’ordre croissant commencent à partir de 0.
ZONE
Renvoie à la ligne les noms de champs contenant des espaces ou des points.
Syntaxe : FIELD(“field name”)
RECHERCHER
Localise une chaîne de texte (“rechercher du texte”) dans une autre chaîne de texte (“dans le texte”) et renvoie le numéro de la position de départ de “rechercher du texte” à partir du premier caractère de “dans le texte” (à partir de 1).
Permet d’indiquer l’ordre du caractère dans “dans le texte” auquel lancer la recherche (à partir de 1). Si vous omettez numéro_ordre, il est supposé être 1.
Renvoie -1 si “rechercher du texte” est introuvable dans “dans le texte”.
Syntaxe : FIND(“find text”, “inside text”, order_number)
FINDFIRST
Localise la première occurrence d’une chaîne de texte (“rechercher du texte”) dans une autre chaîne de texte (“dans le texte”) et renvoie le numéro de la position de départ de “rechercher du texte” à partir du premier caractère de “dans le texte” (à partir de 1).
Syntaxe : FINDFIRST(“dans le texte”, “trouver le texte”)
FINDLAST
Localise la dernière occurrence d’une chaîne de texte (“rechercher du texte”) dans une autre chaîne de texte (“dans le texte”) et renvoie le numéro de la position de départ de “rechercher du texte” à partir du premier caractère de “dans le texte” (à partir de 1).
Syntaxe : FINDLAST(“dans le texte”, “trouver le texte”)
ÉTAGE
Renvoie la valeur arrondie à la valeur inférieure d’un nombre.
Syntaxe : FLOOR(nombre)
GENERATE_ID
Génère un ID unique. Cette fonction ne requiert pas de paramètres supplémentaires.
Syntaxe : GENERATE_ID()
GETDAYSBETWEEN
Renvoie le nombre de jours entre deux dates.
Syntaxe : GETDAYSBETWEEN(“date de début”, “date de fin”)
GETHOURSBETWEEN
Renvoie le nombre d’heures entre deux dates.
Syntaxe : GETHOURSBETWEEN(“date de début”, “date de fin”)
GETMINUTESBETWEEN
Renvoie le nombre de minutes entre deux dates.
Syntaxe : GETMINUTESBETWEEN(“date de début”, “date de fin”)
Si
Retourne une valeur si l’instruction est vraie et une autre valeur si l’instruction est fausse.
Syntaxe : IF(instruction, “value if true”, “value if false”)
ISBLANK
Renvoie TRUE lorsqu’une zone est vide et FALSE lorsqu’une zone n’est pas vide.
Syntaxe : ISBLANK(“field name”)
JOINARRAY
Joint un tableau d’éléments dans une chaîne unique avec un délimiteur spécifié.
Synax : JOINARRAY(tableau, délimiteur, échappement, skipNull, removeDuplicates)
Dans la syntaxe ci-dessus :
- tableau: tableau de chaînes ou de nombres à joindre.
- délimiteur: caractère de délimitation à utiliser lors de la jointure du tableau.
- évasion: si vrai, conserver les éléments entre guillemets.
- skipNull: si vrai, ignorer les éléments qui sont nuls.
- removeDuplicated: si vrai, supprimez les éléments dupliquer.
LEN
Renvoie le nombre de lettres d’une chaîne de texte.
Syntaxe : LEN(“text”)
Syntaxe : LEN([“text1”, text2])
PLUS FAIBLE
Convertit le texte en minuscules.
Syntaxe : LOWER(“text”)
MD5HASH
Applique le hachage MD5 aux données d’entrée pour générer des ID uniques basés sur ces données.
Syntaxe : MD5HASH(“text”)
IDM
Renvoie un nombre spécifique de caractères à partir d’une chaîne de texte, en commençant à l’emplacement spécifié.
La position (numéro_ordre) commence à partir de 1.
Syntaxe : MID(“text”, order_number, caracts_number)
MOD
Renvoie le reste lorsqu’un nombre est divisé par un diviseur.
Syntaxe : MOD(nombre, diviseur)
MAINTENANT
Renvoie la date et l’heure actuelles. Cette fonction ne requiert pas de paramètres supplémentaires.
Syntaxe : NOW()
NUMBERTODATE
Convertit un horodatage Unix en champ de date. L’horodatage Unix est le nombre de millisecondes écoulées depuis le 1er janvier 1970.
Syntaxe : NUMBERTODATE(nombre)
NUMBERTOTEXT
Convertit un nombre en texte.
Syntaxe : NUMBERTOTEXT(nombre)
POW
Renvoie le résultat de x à la puissance de y.
Syntaxe : POW(x, y)
PROPRIÉTÉ
Met en majuscule la première lettre d’une chaîne de texte.
Syntaxe : PROPERCASE(“text”)
Exemple : PROPERCASE(“la pratique rend parfait”) se résout en Practice rend parfait.
RANDOM
Renvoie un nombre réel aléatoire compris entre 0 et 1. Cette fonction ne requiert pas de paramètres supplémentaires.
Syntaxe : RANDOM()
RANDOMBETWEEN
Renvoie un nombre entier aléatoire compris entre deux nombres.
Syntaxe : RANDOMBETWEEN(nombre minimum, nombre maximum)
REMOVEHTMLTAGS
Supprime les balises HTML d’une chaîne de texte.
Syntaxe : REMOVEHTMLTAGS(“text”)
REMPLACER
Remplace une partie d’une chaîne de texte (“ancien texte”) par une autre chaîne de texte (“nouveau texte”) un nombre défini de fois (nombre_de_remplacements) en fonction du numéro d’occurrence de “ancien texte” dans “text” (numéro_occurrence).
Syntaxe : REPLACE(“text”, “old text”, “new text”, occurrence _number, case_sensibilité, number_of_replacements)
REPLACEBYINDEX
Remplace une partie d’une chaîne de texte (“ancien texte”) par une autre chaîne de texte (“nouveau texte”), en fonction du nombre de caractères que vous spécifiez.
La position (numéro_ordre) commence à partir de 1.
Syntaxe : REPLACE(“ancien texte”, numéro_ordre, numéro_caractère, “nouveau texte”)
REPLACEBYREGEXP
Remplace les valeurs de texte à l’aide d’expressions régulières.
Syntaxe : REPLACEBYREGEXP(“texte”, “expression régulière pour la correspondance de modèles”, “expression régulière pour valeur de remplacement”)
ROUND
Renvoie la valeur d’un nombre arrondi à l’entier le plus proche.
Syntaxe : ROUND(nombre)
RECHERCHE
Localise une chaîne de texte (“rechercher du texte”) dans une autre chaîne de texte (“dans le texte”) et renvoie le numéro de la position de départ de “rechercher du texte” à partir du premier caractère de “dans le texte” (à partir de 1).
Permet d’indiquer l’ordre du caractère dans “dans le texte” auquel lancer la recherche (à partir de 1). Si vous omettez numéro_ordre, il est supposé être 1.
Renvoie -1 si “rechercher du texte” est introuvable dans “dans le texte”.
Syntaxe : SEARCH(“find text”, “inside text”, order_number)
FRAIS
Fractionne une chaîne donnée en un tableau de sous-chaînes basé sur un délimiteur spécifique. Cette fonction peut être utilisée comme paramètre pour les fonctions JOINARRAY ou ELEMENTOFARRAY car la valeur de sortie doit être une chaîne.
Syntaxe : SPLIT(“string_to_split”, “_”)
SUBSTITUTE
Remplace “ancien texte” par “nouveau texte” dans une chaîne de texte.
Permet de spécifier l’occurrence de l'”ancien texte” que vous souhaitez remplacer. Si vous indiquez le numéro d’occurrence, seule l’instance “ancien texte” est remplacée. Sinon, chaque occurrence d'”ancien texte” dans le texte est modifiée en “nouveau texte”.
Syntaxe : SUBSTITUTE(“texte”, “ancien texte”, “nouveau texte”, numéro_occurrence)
SUBSTR
Retourne une partie d’une chaîne de texte en partant du premier caractère de la chaîne et jusqu’au nombre de caractères spécifié (en commençant par 1).
Syntaxe : SUBSTR(“text”, order_number)
TITLECASE
Met en majuscule la première lettre de chaque mot dans une chaîne de texte.
Syntaxe : TITLECASE(“text”)
TEXTTODATE
Convertit une chaîne de date en une zone de date au format suivant : AAAA-MM-JJThh:mm:ssZ.
Syntaxe : TEXTTODATE(“date”, “format de date”)
TEXTTONUMBER
Convertit le texte en nombre.
Syntaxe : TEXTTONUMBER(texte)
TRANSFORMATION
Traduit les données entrantes.
Syntaxe : TRANSLATE (“code langue source”, “code langue cible”, “texte”).
Notes :
- Cette fonction est disponible uniquement pour les comptes avec des identifiants de l’API Google Translate.
- Pour obtenir la liste complète des codes langue pris en charge, reportez-vous à la documentation Google Cloud Translation.
TRIMLEFT
Supprime les espaces situés à l’extrémité gauche d’une chaîne de texte.
Syntaxe : TRIMLEFT(“text”)
TRIMRIGHT
Supprime les espaces situés à droite d’une chaîne de texte.
Syntaxe : TRIMRIGHT(“text”)
MAJUSCULES
Convertit le texte en majuscules.
Syntaxe : UPPER(“text”)
Opérateurs
Vous pouvez utiliser les opérateurs arithmétiques et de comparaison répertoriés dans les tables suivantes.
Opérateurs arithmétiques
Opérateur | Description |
+ | Ajouter |
– | Soustraire ou néger |
* | Multiplier |
/ | Diviser |
Par exemple, l’expression suivante retournera la moyenne des deux valeurs numériques.
(RATING1 + RATING2) / 2
Opérateurs relationnels
Opérateur | Description |
== | Égal à |
> ; | Supérieur à |
< ; | Inférieur à |
>= | Supérieur ou égal à |
<= | Inférieur ou égal à |
!= | N’est pas égal à |
Par exemple, l’expression suivante retournera “mauvaise notation” lorsque la notation est inférieure ou égale à 3, et “bonne notation” lorsque la notation est supérieure à 3.
IF(RATING <= 3, “mauvaise évaluation”, “bonne évaluation”)
Opérateurs logiques
Utilisez des opérateurs logiques pour spécifier plusieurs conditions lors de l’utilisation de la fonction IF ou des filtres de job.
Opérateur | Description |
et | La condition est vraie si toutes les conditions séparées par “et” sont vraies. |
dans | La condition est vraie s’il existe une correspondance avec l’une des valeurs répertoriées.
Syntaxe : in[“valeur 1”, “valeur 2”, “valeur 3”] Astuce Qualtrics : utilisez ceci à la place de plusieurs opérateurs « ou ».
|
ou | La condition est vraie si l’une des conditions séparées par “ou” est vraie. |
Par exemple, l’expression suivante retournera “Méditerranée” si le champ PAYS contient l’une des valeurs spécifiées. Sinon, il renverra “Non-Metiterranean”.
IF(LOWER(COUNTRY) in [“france”, “portugal”, “italy”, “spain”, “greece”, “malta”, “cyprus”], “Mediterranean”, “Non-Mediterranean”)
Conseils sur la syntaxe
Suivez ces conseils pour éviter les expressions non valides :
- Lorsque vous combinez plusieurs fonctions dans une expression, assurez-vous que le nombre de parenthèses ouvrantes et fermantes correspond.
Exemple : IF(GETDAYSBETWEEN(feedback_date, response_date) > 3, “en retard”, “non retardé”).
- Pour chaque fonction utilisée dans l’expression, tous les arguments requis doivent être présents. Par exemple, la fonction TODATE requiert que les arguments de date et de format de date fonctionnent correctement.
- Assurez-vous d’utiliser le bon type de données pris en charge par une fonction ou une opération arithmétique ou de comparaison. Par exemple, la fonction ABS a besoin d’un nombre pour fonctionner correctement et ne fonctionnera pas sur un champ de texte ou de date.
- S’il y a des points (“.”) dans votre expression, mettez-les à l’aide de la fonction FIELD et de guillemets (soit “simple” ou “double”). Par exemple, si vous avez un champ nommé “agentParticipants.0.agentLoginName”, voici comment vous l’enveloppez dans une transformation potentielle :
IF(CONTAINS(LOWER(FIELD(“agentParticipants.0.agentLoginName”)), “bot”),”YES”, “NO”).