In dit artikel zullen we proberen de positie van de eerste gedeeltelijke overeenkomst in een bereik te krijgen.
Zoals we weten, retourneert de MATCH-functie de index of positie van de eerste overeenkomst in een bereik. Daarom ligt het voor de hand om deze functie te gebruiken om de positie van de eerste overeenkomst in een bereik te krijgen. Omdat het de wildcard-operators ondersteunt, kunnen we MATCH ook gebruiken om gedeeltelijke overeenkomsten te maken.
Zodra we de positie van de eerste wedstrijdpositie hebben, kunnen we verschillende dingen doen. Zoals het ophalen van die waarde of aangrenzende of niet aangrenzende waarde met behulp van de INDEX-functie, of het maken van een dynamische functie. Het hangt af van uw behoefte en creativiteit.
Generieke formule voor eerst gevonden gedeeltelijke MATCH
Voor hardcode-tekenreeks:
=VERGELIJKEN("*str*",bereik,0)
Voor celverwijzing:
=VERGELIJKEN("*"&cel&"*",bereik,0)
Str: het is de tekst of tekenreeks die u gedeeltelijk wilt matchen in bereik. Het kan van alles zijn, een cel of een hardcoded string.
Bereik: het is het assortiment waarin u zoekt str.
0: Het is de parameter voor exacte match. U kunt ook FALSE gebruiken.
Merk op dat we * (astrisks) gebruikten voor en aan het einde van string str. Dit is de jokertekenoperator voor het matchen van elke waarde met elke string ervoor en erna…
Laten we een voorbeeld bekijken.
Hier heb ik een overzicht van winst, verlies en gelijkspel. We willen de eerste positie van winst, verlies en gelijkspel behalen.
Dus, als ik hard codeer, dan is de formule voor het vinden van de eerste positie van gedeeltelijke overeenkomst in elke cel:
=VERGELIJKEN("*gewonnen*",A2:A10,0)
=VERGELIJKEN("*verlies*",A2:A10,0)
=VERGELIJKEN("*gelijkspel*",A2:A10,0)
=VERGELIJKEN("*"&C2&"*",$A$2:$A$10,0)
Hoe het werkt
Het gebruikt gewoon de functionaliteit van Excel om gedeeltelijke overeenkomsten te maken. MATCH zoekt naar elke tekenreeks die de opgegeven tekenreeks tussen * (sterretjes) bevat en retourneert de eerste gevonden positie.
Vind de positie van de eerste gedeeltelijke overeenkomst in het bereik met behulp van de FirstPartMatch VBA-functie
Als u onderstaande vba-code in de vba-module in Excel kopieert, kunt u deze functie gebruiken om de eerste positie van een gedeeltelijke overeenkomst te krijgen. Schrijf voor het bovenstaande voorbeeld gewoon deze formule:
=FirstPartMatch(C2,$A$2:$A$10)
Je krijgt de positie van de eerste wedstrijd. Zoals dit.
Hoe het werkt
Het eerste argument is de tekenreeks waarnaar u op gedeeltelijke overeenkomst wilt zoeken.
Het tweede argument is het bereik waarin u de positie van uw string wilt krijgen.
=FirstPartMatch(str,bereik)
Om deze formule voor gedeeltelijke matching te gebruiken, kopieert u onderstaande code in de VBA-module.
Functie FirstPartMatch(str As String, rng As Range) Dim tmp, position As Long positie = 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 Functie
Hoofdlettergevoelige gedeeltelijke overeenkomst voor positie
Bovenstaande door de gebruiker gedefinieerde functie voor het vinden van de eerste gedeeltelijke overeenkomst is niet hoofdlettergevoelig. Als je wilt dat het hoofdlettergevoelig is, verwijder dan Lcase-functie vanaf lijn 7.
Dan is de code voor hoofdlettergevoelig:
Functie 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 positie Then FirstPartMatchCASE = position Else FirstPartMatchCASE = "#NA" End If End Functie
U kunt zien dat "gewonnen" en "gelijkspel" in dit geval niet worden gevonden. Omdat er geen kleine letters gewonnen of gelijkspel zijn.
Dus ja jongens, dit zijn de manieren om de positie van de eerste gedeeltelijke match in Excel te vinden. Ik heb je verteld dat je de eerste gedeeltelijke matchpositie kunt vinden met behulp van de vooraf gedefinieerde MATCH-functie en met behulp van de door de gebruiker gedefinieerde match-functie. Als u nog andere ideeën of vragen heeft, kunt u deze hier in de opmerkingen hieronder met ons delen.
Hoe de MATCH-functie in Excel te gebruiken
Hoe de INDEX-functie in Excel te gebruiken
Vlookup Top 5-waarden met dubbele waarden met INDEX-MATCH in Excel
Populaire artikels:
De VERT.ZOEKEN-functie in Excel
AANTAL.ALS in Excel 2016
Hoe de SUMIF-functie in Excel te gebruiken?