I den här artikeln kommer vi att försöka få position för första delmatch i ett intervall.
Som vi vet returnerar MATCH -funktionen indexet eller positionen för första matchen i ett intervall. Därför är det uppenbart att använda denna funktion för att få positionen för första matchen i ett intervall. Eftersom den stöder jokerteckenoperatörerna kan vi också använda MATCH för att göra delvisa matchningar.
När vi väl fått positionen som första matchposition kan vi göra olika saker. Som att hämta det värdet eller intilliggande eller icke -intilliggande värde med hjälp av INDEX -funktion ,, eller göra en dynamisk funktion. Det beror på ditt behov och kreativitet.
Generisk formel för först hittad partiell MATCH
För hårdkodsträng:
= MATCH ("*str*",räckvidd,0)
För cellreferens:
= MATCH ("*" & cell & "*", intervall, 0)
Str: det är texten eller strängen som du delvis vill matcha inom intervallet. Det kan vara vilken som helst sak, en cell eller en hårdkodad sträng.
Räckvidd: det är intervallet du letar efter str.
0: Det är parametern för exakt matchning. Du kan också använda FALSKT.
Observera att vi brukade * (astrisker) framför och slutet av strängstr. Detta är jokerteckenoperatören för att matcha alla värden som har någon sträng före och efter den …
Låt oss se ett exempel.
Här har jag ett register över Win, Loss och Tie. Vi vill få första positionen Win, Loss och Tie.
Så om jag hårdkodar kommer formeln för att hitta första positionen för partiell matchning i varje cell att vara:
= MATCH ("*vann*", A2: A10,0)
= MATCH ("*förlust*", A2: A10,0)
= MATCH ("*tie*", A2: A10,0)
= MATCH ("*" & C2 & "*", $ A $ 2: $ A $ 10,0)
Hur det fungerar
Det använder helt enkelt Excel -funktionen för att göra delvisa matchningar. MATCH söker efter en sträng som innehåller den angivna strängen mellan * (asterisks) och returnerar den första hittade positionen.
Hitta position för första partiella matchningen i intervallet med FirstPartMatch VBA -funktion
Om du kopierar nedan vba -kod i vba -modul i excel kan du använda den här funktionen för att få första positionen för delvis matchning. För exemplet ovan skriver du bara den här formeln:
= FirstPartMatch (C2, $ A $ 2: $ A $ 10)
Du får positionen för första matchen. Så här.
Hur det fungerar
Det första argumentet är strängen du vill söka efter partiell matchning.
Det andra argumentet är intervallet där du vill få positionen för din sträng.
= FirstPartMatch (str, intervall)
För att använda denna formel för partiell matchning, kopiera nedanstående kod i VBA -modulen.
Funktion FirstPartMatch (str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 För varje cll In rng tmp = tmp + 1 If InStr (1, LCase (cll.Value2), LCase (str)) > 0 Därefter position = tmp Avsluta för slut Om nästa kll Om position Då FirstPartMatch = position Else FirstPartMatch = "#NA" Slut om slutfunktion
Huvudkänslig partiell matchning för position
Ovanstående användardefinierade funktion för att hitta den första partiella matchningen är inte skiftlägeskänslig. Om du vill att det ska vara skiftlägeskänsligt tar du bort det Lcase -funktion från rad 7.
Då är koden för skiftlägeskänslig:
Funktion FirstPartMatchCASE (str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 För varje cll In rng tmp = tmp + 1 If InStr (1, cll.Value2, str)> 0 Sedan position = tmp Exit For End If Next cll If position Then FirstPartMatchCASE = position Else FirstPartMatchCASE = "#NA" End If End Function
Du kan se att "vunnit" och "oavgjort" i det här fallet inte hittas. Eftersom det inte finns några vanliga eller oavgjorda gemener.
Så ja killar, det här är sätten att hitta positionen för första delmatch i excel. Jag sa till dig att du kan hitta frist delvis matchningsposition med fördefinierad MATCH -funktion och med användardefinierad matchningsfunktion. Om du har några andra idéer eller frågor, dela med oss här i kommentarfältet nedan.
Hur man använder MATCH -funktionen i Excel
Så här använder du INDEX -funktionen i Excel
Vlookup Topp 5 värden med dubblettvärden med INDEX-MATCH i Excel
Populära artiklar:
VLOOKUP -funktionen i Excel
COUNTIF i Excel 2016
Hur man använder SUMIF -funktionen i Excel