Partager via


Fonction SEARCH

Retourne la position à laquelle un caractère ou une chaîne de texte spécifique est trouvé pour la première fois, en allant de gauche à droite. La recherche ne respecte pas la casse mais respecte les accents.

Syntaxe

SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])

Paramètres

Terme

Définition

find_text

Texte que vous souhaitez rechercher.

Vous pouvez utiliser les caractères génériques (le point d'interrogation (?) et l'astérisque (*)) dans find_text. Un point d'interrogation représente n'importe quel caractère unique ; un astérisque correspond à n'importe quelle séquence de caractères. Si vous souhaitez rechercher un point d'interrogation ou un astérisque réel, tapez le tilde (~) avant le caractère.

within_text

Texte dans lequel vous souhaitez rechercher find_text, ou une colonne contenant le texte.

start_num

Position de caractère dans within_text au niveau de laquelle vous souhaitez commencer la recherche (facultatif). En l'absence de spécification, il s'agit de la valeur 1.

NotFoundValue

Valeur qui doit être retournée lorsque l'opération ne trouve pas une sous-chaîne correspondante, en principe 0, -1, ou BLANK () (facultatif).

Valeur de retour

Numéro de la position de départ de la première chaîne de texte à partir du premier caractère de la deuxième chaîne de texte.

Notes

  1. La fonction de recherche respecte la casse. Si vous recherchez « N », vous allez obtenir la première occurrence de « N » ou « n ».

  2. La fonction de recherche respecte les accents. Si vous recherchez « á » vous allez obtenir la première occurrence de « á », mais pas les occurrences de « a », « à », ni la version en majuscules « A », « Á ».

  3. Cette fonction vous permet de localiser une chaîne de texte dans une seconde chaîne de texte et de retourner la position de départ de la première chaîne de texte.

  4. Vous pouvez utiliser la fonction SEARCH pour déterminer l'emplacement d'un caractère ou d'une chaîne de texte dans une autre chaîne de texte, puis utiliser la fonction MID pour retourner le texte ou utiliser la fonction REPLACE pour modifier le texte.

  5. Si find_text est introuvable dans within_text, la formule retourne une erreur. Ce comportement est identique à celui d'Excel, qui retourne #VALEUR si la sous-chaîne est introuvable. Les valeurs Null dans within_text seront interprétées comme une chaîne vide dans ce contexte.

Cette fonction DAX peut retourner des résultats différents lorsqu'elle est utilisée dans un modèle déployé puis interrogé en mode DirectQuery. Pour plus d'informations sur les différences sémantiques en mode DirectQuery, consultez https://go.microsoft.com/fwlink/?LinkId=219171.

Exemple : recherche dans une chaîne

Description

La formule ci-dessous recherche la position de la lettre « n » dans le mot « printer ».

Code

=SEARCH("n","printer")

Commentaires

La formule retourne 4 car « n » est le quatrième caractère dans le mot « printer ».

Exemple : recherche dans une colonne

Description

Vous pouvez utiliser une référence de colonne comme argument de SEARCH. La formule suivante recherche la position du caractère « - » (trait d'union) dans la colonne, [PostalCode].

Code

=SEARCH("-",[PostalCode])

Commentaires

Le résultat obtenu est une colonne de nombres, qui indiquent la position d'index du trait d'union.

Description

La formule de l'exemple précédent échoue si la chaîne recherchée est introuvable dans chaque ligne de la colonne source. Par conséquent, l'exemple suivant montre comment utiliser IFERROR avec la fonction SEARCH, pour faire en sorte qu'un résultat valide soit retourné pour chaque ligne.

La formule suivante recherche la position du caractère « - » dans la colonne et retourne -1 si la chaîne est introuvable.

Code

= IFERROR(SEARCH("-",[PostalCode]),-1)

Commentaires

Notez que le type de données de la valeur que vous utilisez comme sortie d'erreur doit correspondre au type de données du type de la sortie sans erreur. Dans ce cas, vous indiquez une valeur numérique à fournir en sortie en cas d'erreur, car SEARCH retourne une valeur entière.

Toutefois, vous pouvez aussi retourner un espace (chaîne vide) en utilisant BLANK() comme deuxième argument d'IFERROR.

Voir aussi

Référence

Fonction MID

Fonction REPLACE

Autres ressources

Fonctions de texte (DAX)