SEARCH
S’applique à :Colonne calculéeTable calculéeMesureCalcul visuel
Retourne le numéro du caractère où apparaît pour la première fois un caractère ou une chaîne de texte spécifique selon une lecture 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 à rechercher. Vous pouvez utiliser des caractères génériques (le point d’interrogation ( ?) et l’astérisque (*)) dans find_text. Un point d’interrogation correspond à 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 un tilde (~) avant le caractère. |
within_text | Texte dans lequel vous voulez rechercher find_text ou colonne contenant le texte. |
start_num | (Facultatif) Position du caractère dans within_text à partir de laquelle vous voulez démarrer la recherche. Si l’argument est omis, la valeur est 1. |
NotFoundValue | (Facultatif, mais fortement recommandé) Valeur qui doit être retournée quand l’opération ne trouve pas de sous-chaîne correspondante, généralement 0, -1 ou BLANK(). Si non spécifié, une erreur est renvoyée. |
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.
Remarques
La fonction de recherche ne respecte pas la casse. Si la recherche porte sur « N », la première occurrence de « N » ou « n » sera trouvée.
La fonction de recherche respecte les accents. Si la recherche porte sur le caractère « á », la première occurrence de « á » sera trouvée, mais pas les occurrences de « a », « à », « A » ou « Á ».
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 la fonction REPLACE pour modifier le texte.
Si find_text est introuvable dans within_text, la formule retourne une erreur. Ce comportement est similaire à celui d’Excel, qui retourne #VALUE si la sous-chaîne est introuvable. Les valeurs Null dans within_text sont interprétées comme une chaîne vide dans ce contexte.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau des lignes (RLS).
Exemple
La requête DAX suivante recherche la position de la première lettre de « cycle » dans la chaîne qui contient le nom du revendeur. Si elle est introuvable, Blank est retourné.
SEARCH ne respecte pas la casse. Dans cet exemple, si « cycle » ou « Cycle » est utilisé dans l’argument <find_text>, les résultats sont retournés dans les deux cas. Utilisez FIND pour respecter la casse.
Les exemples de cet article peuvent être utilisés avec l'exemple de modèle Adventure Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez Exemple de modèle DAX.
EVALUATE
CALCULATETABLE (
ADDCOLUMNS (
TOPN ( 10, SUMMARIZE('Reseller', [Reseller], [Business Type])),
"Position of cycle", SEARCH ( "cycle", 'Reseller'[Reseller], 1, BLANK () )
),
'Reseller'[Business Type] IN { "Specialty Bike Shop", "Value Added Reseller", "Warehouse"}
)
Retourne :
Reseller | Business Type | Position de cycle |
---|---|---|
Volume Bike Sellers | Warehouse | |
Mass Market Bikes | Value Added Reseller | |
Twin Cycles | Value Added Reseller | 6 |
Rich Department Store | Warehouse | |
Rental Gallery | Specialty Bike Shop | |
Budget Toy Store | Warehouse | |
Global Sports Outlet | Warehouse | |
Online Bike Catalog | Warehouse | |
Helmets and Cycles | Value Added Reseller | 13 |
Jumbo Bikes | Specialty Bike Shop |