Grâce au chaînage d’expressions avancé dans vos formulaires, vous pouvez créer des formules mathématiques pour calculer une valeur. Utilisez INDEXOf pour référencer l’emplacement d’un caractère/valeur dans une chaîne.
La fonction INDEXOF permet d'utiliser deux valeurs de chaîne et de renvoyer l'index de la deuxième valeur dans la première valeur.
Si « exemple » est la première valeur et que nous recherchons « x » dedans, l’expression renverra 1. e=(0), x=(1), a=(3), etc.
L'index renvoyé ne sera que la première instance de la valeur. Par conséquent, « e » ne renverra que 0 comme index, même s'il existe deux instances dans le mot « exemple » en 0 et 5.
La configuration et la mise en forme de l’expression AVG sont primordiales pour éviter qu’un message d’erreur ne s’affiche dans votre formulaire à l’endroit où s’afficherait habituellement le résultat de l’expression. La première ligne de l’expression INDEXOF doit être configurée comme suit :
{{ INDEXOf(variable, 'value') }} |
ASTUCE ! La référence à une variable dans l’expression ci-dessus peut être l’identifiant d’une question ou l’index d’un champ dans une question.
Pour reprendre l'exemple précédent où nous localisons l'index d'une valeur au sein du mot « exemple », notre expression peut être :
{{ INDEXOf(exemple, 'x') }} = 1 |
{{ INEXDOF(exemple, 'e') }} = 0 |
{{ INDEXOf(exemple, 's') }} = -1 |
Plus généralement, l’index d’une valeur peut être extrait de la réponse à une question à réponse texte ou de la réponse à une cellule particulière d’une grille.
INDEXOF a question à réponse texte | {{ INDEXOF(q1,'a') }} | Nous indiquera l’index de la valeur « a » dans la question 1. REMARQUE : Dans cet exemple, q1 a été utilisé comme identifiant de la question 1. |
INDEXOF une seule cellule | {{ INDEXOF(q2[0], '@') }} | En fonction de l'indexation de la grille, cela nous indiquera l'index de la valeur « @ » dans la première cellule de la question 2. |
Imaginons un cas de figure où il faut impérativement connaître le nombre de caractères avant le symbole @ dans un champ de réponse de courrier électronique. La question par laquelle l'adresse email est demandée au demandeur correspond à une question à colonne unique avec l'identifiant about (à propos de) et à la cinquième sous-question de la question de type grille.
Identifiant | about |
Référence de la question : | about.4 |
Expression : | {{ INDEXOF(about.4, '@') }} |
Réponse de l'utilisateur : | email@email.com |
Index renvoyé : | 5 |
En extrapolant à partir de l'exemple précédent, un groupe de caractères peut être utilisé dans l'expression. Dans ces cas-là, l'index du premier caractère du groupe de caractères indiqué dans l'expression sera l'index fourni dans la réponse.
Identifiant | about |
Référence de la question : | about.4 |
Expression : | {{ INDEXOF(about.4, '.com') }} |
Réponse de l'utilisateur : | email@email.com |
Index renvoyé : | 11 |
Si des informations d'identification sont collectées à l'aide d'une question à plusieurs colonnes (noms, adresses email, numéros de téléphone, etc.), nous devons modifier la mise en forme de l'expression pour cibler une seule cellule dans la grille.
Identifiant | about |
Référence de la question : | about[1] |
Expression : | {{ INDEXOF(about[1], '@') }} |
Réponse de l'utilisateur : | email@email.com |
Index renvoyé : | 5 |