
Generička formula
=MATCH(1,EXACT(LEFT(A1,255),LEFT(rng,255))*EXACT(MID(A1,256,255),MID(rng,256,255)),0)
Sažetak
Da biste podudarali tekst duži od 255 znakova s funkcijom MATCH, možete upotrijebiti funkcije LIJEVO, MID i TOČNO za raščlanjivanje i usporedbu teksta, kao što je objašnjeno u nastavku. U prikazanom primjeru formula u G5 je:
=MATCH(1,EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255)),0)
gdje su podaci imenovani raspon B5: B15.
Napomena: ova formula vrši usporedbu velikih i malih slova.
Obrazloženje
Funkcija MATCH ima ograničenje od 255 znakova za vrijednost pretraživanja. Ako pokušate upotrijebiti duži tekst, MATCH će vratiti pogrešku #VALUE.
Da biste zaobišli ovo ograničenje, za raščlanjivanje i usporedbu teksta možete koristiti logičku logiku i funkcije LIJEVO, MID i TOČNO.
Niz s kojim testiramo u ćeliji E5 ima 373 znaka kako slijedi:
Lorem ipsum dolor amet na nju je stavio pticu, povjerljivi fond za jednoroge, prava za bicikle za parove, za koje vjerojatno niste čuli. Krmna helvetica crusty semiotika zapravo nasljeđe. Tumblr poutine jednorog godard pokušajte prije nego što su rasprodali narwhal meditaciju kič prsluk fixie twee doslovno kapuljača retro. Messenger torba pakleno koricastog zelenog soka obrtnik.
U osnovi, ovo je samo MATCH formula, postavljena da traži 1 u načinu točnog podudaranja:
=MATCH(1,array,0)
Niz u gornjoj formuli sadrži samo 1 i 0, a 1 predstavljaju odgovarajući tekst. Ovaj niz konstruiran je sljedećim izrazom:
EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255))
Sam taj izraz ima dva dijela. S lijeve strane imamo:
EXACT(LEFT(E5,255),LEFT(data,255)) // compare first 255 chars
Ovdje funkcija LIJEVO izdvaja prvih 255 znakova iz E5 i iz svih ćelija u navedenom rasponu podataka (B5: B15). Budući da podaci sadrže 11 tekstualnih nizova, LIJEVO će generirati 11 rezultata.
Funkcija EXACT tada uspoređuje pojedinačni niz iz E5 sa svih 11 nizova koje je vratio LIJEVO. EXACT vraća 11 rezultata u nizu poput ovog:
(FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
S desne strane imamo još jedan izraz:
EXACT(MID(E5,256,255),MID(data,256,255) // compare next 255 chars
To je potpuno isti pristup kao i LIJEVO, ali ovdje koristimo funkciju MID za izdvajanje sljedećih 255 znakova teksta. Funkcija EXACT ponovno vraća 11 rezultata:
(TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Kad se dva gornja polja pomnože jedan s drugim, matematička operacija prisiljava TRUE FALSE vrijednosti na 1s i 0s. Slijedeći pravila logičke aritmetike, rezultat je niz poput ovog:
(0;0;0;0;0;0;0;0;0;1;0)
koji se vraća izravno u MATCH kao pretraživački niz. Formula se sada može razriješiti na:
=MATCH(1,(0;0;0;0;0;0;0;0;0;1;0),0)
Funkcija MATCH izvodi točno podudaranje i daje konačni rezultat 10, što predstavlja deseti tekstualni niz u B5: B15.
Napomena: duljina teksta prikazana u primjeru izračunava se pomoću funkcije LEN. Čini se samo kao referenca.
Opcija bez velikih i malih slova
EXACT funkcija razlikuje velika i mala slova, pa će gornja formula poštivati mala i velika slova.
Da biste izvršili podudaranje malih i velikih slova s dugim tekstom, koristite funkcije ISNUMBER i SEARCH na sljedeći način:
=MATCH(1,ISNUMBER(SEARCH(LEFT(E5,255),LEFT(data,255)))*ISNUMBER(SEARCH(MID(E5,256,255),MID(data,256,255))),0)
Ukupna struktura ove formule identična je gornjem primjeru, ali za usporedbu teksta koristi se SEARCH funkcija umjesto EXACT (detaljno objašnjeno ovdje).
Za razliku od EXACT, funkcija SEARCH također podržava zamjenske znakove.
Uz XMATCH
Funkcija XMATCH nema isto ograničenje od 255 znakova kao MATCH. Da biste izveli slično podudaranje s dugim tekstom s XMATCH-om, možete koristiti puno jednostavniju formulu u nastavku:
=XMATCH(E5,data)
Napomena: XMATCH podržava zamjenske znakove, ali ne razlikuje velika i mala slova.