Comment obtenir la position du premier match partiel
Dans cet article, nous allons essayer d’obtenir la position de la première correspondance partielle dans une plage.
Comme nous le savons, link: / lookup-formulas-excel-match-function [fonction MATCH]
renvoie l’index ou la position de la première correspondance dans une plage.
Par conséquent, il est évident d’utiliser cette fonction pour obtenir la position de la première correspondance dans une plage. Puisque, il supporte le link: / tips-excel-wildcards [opérateurs de joker]
, nous pouvons également utiliser MATCH pour faire des correspondances partielles.
Une fois que nous avons obtenu la position de la première position de match, nous pouvons faire différentes choses. Comme récupérer cette valeur ou une valeur adjacente ou non adjacente en utilisant link: / lookup-formulas-excel-index-function [INDEX function]
,, ou en créant une fonction dynamique. Cela dépend de vos besoins et de votre créativité.
Formule générique pour la première correspondance partielle trouvée
Pour la chaîne hardcode:
=MATCH("str",range,0)
Pour référence de cellule:
=MATCH(""&cell&"",range,0)
Str: c’est le texte ou la chaîne que vous voulez faire correspondre partiellement dans la plage. Cela peut être n’importe quoi, une cellule ou une chaîne codée en dur.
Range: c’est la plage dans laquelle vous chercherez str.
0: C’est le paramètre de correspondance exacte. Vous pouvez également utiliser FALSE.
Notez que nous avions l’habitude de (astrisques) devant et à la fin de la chaîne str. Il s’agit de l’opérateur générique pour faire correspondre toute valeur ayant une chaîne avant et après. *
Voyons un exemple.
Ici, j’ai un record de victoire, perte et égalité. Nous voulons obtenir la première position de victoire, défaite et égalité.
Donc, si je code en dur, la formule pour trouver la première position de correspondance partielle dans chaque cellule sera:
=MATCH("won",A2:A10,0) =MATCH("loss",A2:A10,0) =MATCH("tie",A2:A10,0)
=MATCH(""&C2&"",$A$2:$A$10,0)
Comment ça marche
Il utilise simplement la fonctionnalité d’Excel pour faire des correspondances partielles. MATCH recherche toute chaîne contenant la chaîne fournie entre * (astérisques) et renvoie la première position trouvée.
Trouver la position de la première correspondance partielle dans la plage à l’aide de la fonction VBA FirstPartMatch Si vous copiez le code vba ci-dessous dans le module vba dans Excel, vous pouvez utiliser cette fonction pour obtenir la première position de la correspondance partielle. Pour l’exemple ci-dessus, écrivez simplement cette formule:
=FirstPartMatch(C2,$A$2:$A$10)
Vous obtiendrez la position du premier match. Comme ça.
Comment ça marche
Le premier argument est la chaîne dans laquelle vous souhaitez rechercher une correspondance partielle.
Le deuxième argument est la plage dans laquelle vous souhaitez obtenir la position de votre chaîne.
=FirstPartMatch(str,range)
Pour utiliser cette formule pour une correspondance partielle, copiez le code ci-dessous dans le module VBA.
Function FirstPartMatch(str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 For Each cll In rng tmp = tmp + 1 If InStr(1, LCase(cll.Value2), LCase(str)) > 0 Then position = tmp Exit For End If Next cll If position Then FirstPartMatch = position Else FirstPartMatch = "#NA" End If End Function
Correspondance partielle sensible à la casse pour la position
La fonction définie par l’utilisateur ci-dessus pour trouver la première correspondance partielle ne sera pas sensible à la casse. Si vous voulez qu’elle respecte la casse, supprimez la fonction Lcase de la ligne 7.
Ensuite, le code pour sensible à la casse sera:
Function FirstPartMatchCASE(str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 For Each cll In rng tmp = tmp + 1 If InStr(1, cll.Value2, str) > 0 Then position = tmp Exit For End If Next cll If position Then FirstPartMatchCASE = position Else FirstPartMatchCASE = "#NA" End If End Function
Vous pouvez voir que «gagné» et «égalité» dans ce cas ne sont pas trouvés. Puisqu’il n’y a aucune minuscule gagnée ou nulle.
Alors oui les gars, ce sont les moyens de trouver la position du premier match partiel dans Excel. Je vous ai dit que vous pouvez trouver la première position de correspondance partielle en utilisant la fonction MATCH prédéfinie et en utilisant la fonction de correspondance définie par l’utilisateur.
Si vous avez d’autres idées ou questions, partagez-les avec nous ici dans la section commentaires ci-dessous.
Articles liés:
link: / lookup-formulas-excel-match-function [Comment utiliser la fonction MATCH dans Excel]
link: / lookup-formulas-excel-index-function [Comment utiliser la fonction INDEX dans Excel]
link: / lookup-formulas-vlookup-top-5-values-with-duplicate-values-using-index-match-in-excel [Vlookup Top 5 Values with Duplicate Values Using INDEX-MATCH in Excel]
Articles populaires:
link: / formulas-and-functions-introduction-of-vlookup-function [La fonction RECHERCHEV dans Excel]
lien: / tips-countif-in-microsoft-excel [COUNTIF dans Excel 2016]
link: / excel-formule-et-fonction-excel-sumif-function [Comment utiliser la fonction SUMIF dans Excel]