V tem članku bomo poskušali pridobiti položaj prvega delnega ujemanja v razponu.
Kot vemo, funkcija MATCH vrne indeks ali položaj prvega ujemanja v obsegu. Zato je očitno, da s to funkcijo dobimo prvo ujemanje v razponu. Ker podpira operaterje nadomestnih znakov, lahko za delna ujemanja uporabimo tudi MATCH.
Ko dobimo položaj prve tekme, lahko počnemo različne stvari. Tako kot pridobivanje te vrednosti ali sosednje ali nesosednje vrednosti z uporabo funkcije INDEX ,, ali ustvarjanje dinamične funkcije. Odvisno je od vaših potreb in ustvarjalnosti.
Splošna formula za prvo najdeno delno ujemanje
Za niz s trdo kodo:
= MATCH ("*str*",obseg,0)
Za referenco celic:
= MATCH ("*" & celica & "*", obseg, 0)
Str: to je besedilo ali niz, ki ga želite delno ujemati v obsegu. Lahko je katera koli stvar, celica ali trdo kodiran niz.
Domet: to je obseg, v katerem boste iskali str.
0: To je parameter za natančno ujemanje. Uporabite lahko tudi FALSE.
Upoštevajte, da smo včasih * (astrisks) pred in na koncu niza str. To je nadomestni operator za ujemanje katere koli vrednosti kateri koli niz pred in po njem …
Poglejmo primer.
Tukaj imam zapis Win, Loss in Tie. Želimo si osvojiti prvo mesto zmag, porazov in neodločenih izidov.
Torej, če trdo kodiram, bo formula za iskanje prvega mesta delnega ujemanja v vsaki celici naslednja:
= MATCH ("*zmagal*", A2: A10,0)
= MATCH ("*izguba*", A2: A10,0)
= MATCH ("*kravata*", A2: A10,0)
= MATCH ("*" & C2 & "*", $ A $ 2: $ A $ 10,0)
Kako deluje
Enostavno uporablja funkcionalnost programa Excel za delna ujemanja. MATCH išče kateri koli niz, ki vsebuje podan niz med * (zvezdice) in vrne prvo najdeno mesto.
Poiščite položaj prvega delnega ujemanja v razponu s funkcijo FirstPartMatch VBA
Če kodirate spodaj kodo vba v modulu vba v Excelu, lahko s to funkcijo pridobite prvo mesto delnega ujemanja. Za zgornji primer samo napišite to formulo:
= FirstPartMatch (C2, $ A $ 2: $ A $ 10)
Dobili boste mesto prve tekme. Všečkaj to.
Kako deluje
Prvi argument je niz, po katerem želite poiskati delno ujemanje.
Drugi argument je obseg, v katerem želite dobiti položaj niza.
= FirstPartMatch (str, obseg)
Če želite uporabiti to formulo za delno ujemanje, kopirajte spodnjo kodo v modul VBA.
Funkcija FirstPartMatch (str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 Za vsak cll In rng tmp = tmp + 1 Če je InStr (1, LCase (cll.Value2), LCase (str)) > 0 Potem položaj = tmp Izhod Za konec Če Naslednji cll Če položaj Potem FirstPartMatch = položaj Else FirstPartMatch = "#NA" Konec Funkcija End
Delno ujemanje položaja glede na velike in male črke
Zgoraj uporabniško določena funkcija za iskanje prvega delnega ujemanja ne bo občutljiva na velike in male črke. Če želite, da je občutljiv na velike in male črke, ga odstranite Lcase funkcija iz vrstice 7.
Koda za velike in male črke bo naslednja:
Funkcija FirstPartMatchCASE (str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 Za vsak cll In rng tmp = tmp + 1 Če je InStr (1, cll.Value2, str)> 0 Potem je položaj = tmp Izhod Za konec Če Naslednji cll Če položaj Potem FirstPartMatchCASE = položaj Else FirstPartMatchCASE = "#NA" Končaj, če funkcija End
Vidite, da "zmaga" in "neodločeno" v tem primeru ni mogoče najti. Ker ni zmagovalcev ali neodločenih izidov.
Torej, fantje, to so načini, kako najti mesto prvega delnega ujemanja v Excelu. Rekel sem vam, da lahko z uporabo vnaprej določene funkcije MATCH in s funkcijo, ki jo določi uporabnik, najdete položaj delnega ujemanja. Če imate še kakšno idejo ali vprašanje, delite z nami v spodnjem razdelku za komentarje.
Kako uporabljati funkcijo MATCH v Excelu
Kako uporabljati funkcijo INDEX v Excelu
Vlookup Top 5 vrednosti z podvojenimi vrednostmi z uporabo INDEX-MATCH v Excelu
Priljubljeni članki:
Funkcija VLOOKUP v Excelu
COUNTIF v Excelu 2016
Kako uporabljati funkcijo SUMIF v Excelu