Formule Excel: le texte de correspondance XLOOKUP contient -

Table des matières

Formule générique

=XLOOKUP("*"&value&"*",lookup,results,,2)

Sommaire

Pour utiliser XLOOKUP pour faire correspondre des valeurs contenant du texte spécifique, vous pouvez utiliser des caractères génériques et la concaténation. Dans l'exemple illustré, la formule en F5 est:

=XLOOKUP("*"&E5&"*",code,quantity,"no match",2)

où le code (B5: B15) et la quantité (C5: C15) sont des plages nommées.

Explication

La fonction XLOOKUP contient une prise en charge intégrée des caractères génériques, mais cette fonctionnalité doit être activée explicitement en définissant le mode de correspondance sur le nombre 2.

Dans l'exemple illustré, XLOOKUP est configuré pour correspondre à la valeur entrée dans la cellule E5, qui peut apparaître n'importe où dans les valeurs de recherche dans B5: B15. La formule en F5 est:

=XLOOKUP("*"&E5&"*",code,quantity,"no match",2) // returns 50

  • lookup_value - E5, avec des astérisques (*) concaténés devant et derrière
  • lookup_array - le code de plage nommé (B5: B15)
  • return_array - la quantité de plage nommée (C5: C15)
  • if_not_found - la chaîne "pas de correspondance"
  • match_mode - fourni comme 2 (correspondance générique)
  • search_mode - non fourni. La valeur par défaut est 1 (du premier au dernier)

Pour rendre une correspondance de type «contient» automatique, l'astérisque générique (*) est à la fois ajouté et ajouté à la valeur de la cellule E5 avec concaténation:

"*"&E5&"*"

Après concaténation, la formule devient:

=XLOOKUP("*BCC*",code,quantity,"no match",2)

XLOOKUP localise la première correspondance contenant "BCC" (050-BCC-123 dans la ligne 10) et renvoie la valeur correspondante du tableau de retour, 50.

Notez que XLOOKUP n'est pas sensible à la casse, entrer "bcc" dans E5 renverra le même résultat:

=XLOOKUP("*bcc*",code,quantity,"no match",2) // returns 50

Voir ci-dessous pour une option permettant de configurer XLOOKUP pour une correspondance sensible à la casse.

Option RECHERCHEV

La formule RECHERCHEV prend également en charge les caractères génériques lorsqu'elle est définie sur une correspondance exacte. La formule VLOOKUP équivalente pour cet exemple est:

=VLOOKUP("*"&E5&"*",B5:C15,2,0)

Explication complète ici.

Avec SEARCH et FIND

Il est également possible d'utiliser les fonctions SEARCH et FIND pour effectuer une correspondance de type "contient" avec XLOOKUP. Pour une correspondance insensible à la casse (comme l'exemple ci-dessus), vous pouvez utiliser SEARCH comme ceci:

=XLOOKUP(1,--ISNUMBER(SEARCH("BCC",code)),quantity,"no match",2)

Pour une correspondance sensible à la casse, vous pouvez utiliser FIND à la place:

=XLOOKUP(1,--ISNUMBER(FIND("BCC",code)),quantity,"no match",2)

Les deux options ci-dessus facilitent l'extension des critères pour inclure d'autres conditions à l'aide de la logique booléenne.

La logique de ISNUMBER + SEARCH est expliquée ici.

Plusieurs matchs

Si vous avez besoin de plusieurs correspondances, consultez la fonction FILTRE.

Articles intéressants...