
Splošna formula
=MATCH(1,EXACT(LEFT(A1,255),LEFT(rng,255))*EXACT(MID(A1,256,255),MID(rng,256,255)),0)
Povzetek
Če želite ujemati besedilo, daljše od 255 znakov, s funkcijo MATCH, lahko za razčlenitev in primerjavo besedila uporabite funkcije LEVO, MID in TOČNO, kot je razloženo spodaj. V prikazanem primeru je formula v G5:
=MATCH(1,EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255)),0)
kjer so podatki imenovani obseg B5: B15.
Opomba: ta formula izvaja primerjavo med velikimi in malimi črkami.
Pojasnilo
Funkcija MATCH ima za iskalno vrednost omejitev 255 znakov. Če poskusite uporabiti daljše besedilo, bo MATCH vrnil napako #VREDNOST.
Za rešitev te omejitve lahko za razčlenitev in primerjavo besedila uporabite logično logiko ter funkcije LEVO, MID in TOČNO.
Niz, s katerim testiramo v celici E5, ima 373 znakov, kot sledi:
Lorem ipsum dolor amet je nanj uvrstil ptico, skrbniške sklade za samorog, za katere brki verjetno še niste slišali. Krma helvetica crusty semiotics je pravzaprav dediščina. Tumblr poutine unicorn godard poskusite, preden so razprodali narwhal meditacijski kič telovnik fixie twee dobesedno kapuco retro. Messenger vrečka peklensko skorjavega zelenega soka obrtnik.
V bistvu je to le formula MATCH, ki je nastavljena tako, da išče 1 v načinu natančnega ujemanja:
=MATCH(1,array,0)
Polje v zgornji formuli vsebuje samo 1 in 0, 1 pa predstavlja ujemajoče se besedilo. Ta matrika je zgrajena z naslednjim izrazom:
EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255))
Ta izraz ima dva dela. Na levi strani imamo:
EXACT(LEFT(E5,255),LEFT(data,255)) // compare first 255 chars
Tu funkcija LEFT izvleče prvih 255 znakov iz E5 in iz vseh celic v imenovanih podatkih obsega (B5: B15). Ker podatki vsebujejo 11 besedilnih nizov, bo LEFT ustvaril 11 rezultatov.
Nato funkcija EXACT primerja posamezen niz iz E5 z vsemi 11 nizi, ki jih vrne LEFT. EXACT vrne 11 rezultatov v takem polju:
(FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Na desni imamo še en izraz:
EXACT(MID(E5,256,255),MID(data,256,255) // compare next 255 chars
To je popolnoma enak pristop kot pri LEFT, vendar tukaj uporabljamo funkcijo MID za izvlečenje naslednjih 255 znakov besedila. Funkcija EXACT spet vrne 11 rezultatov:
(TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Ko se dva zgornja polja pomnožita med seboj, matematična operacija prisili vrednosti TRUE FALSE na 1s in 0s. Po pravilih logične aritmetike je rezultat matrika, kot je ta:
(0;0;0;0;0;0;0;0;0;1;0)
ki se vrne neposredno v MATCH kot iskalno polje. Formulo je zdaj mogoče razrešiti na:
=MATCH(1,(0;0;0;0;0;0;0;0;0;1;0),0)
Funkcija MATCH izvede natančno ujemanje in vrne končni rezultat 10, kar predstavlja deseti besedilni niz v B5: B15.
Opomba: dolžina besedila, prikazana v primeru, se izračuna s funkcijo LEN. Zdi se le za referenco.
Možnost, ki ne razlikuje med velikimi in malimi črkami
Funkcija EXACT razlikuje med velikimi in malimi črkami, zato bo zgornja formula upoštevala velike in male črke.
Za izvedbo ujemanja z velikimi in malimi črkami z dolgim besedilom uporabite funkciji ISNUMBER in SEARCH, kot sledi:
=MATCH(1,ISNUMBER(SEARCH(LEFT(E5,255),LEFT(data,255)))*ISNUMBER(SEARCH(MID(E5,256,255),MID(data,256,255))),0)
Celotna struktura te formule je enaka zgornjemu primeru, vendar se za primerjavo besedila namesto EXACT uporablja funkcija SEARCH (podrobno razloženo tukaj).
Za razliko od EXACT, funkcija SEARCH podpira tudi nadomestne znake.
Z XMATCH
Funkcija XMATCH nima enake omejitve 255 znakov kot MATCH. Za izvedbo podobnega ujemanja z dolgim besedilom z XMATCH lahko uporabite spodnjo precej preprostejšo formulo:
=XMATCH(E5,data)
Opomba: XMATCH podpira nadomestne znake, vendar ne razlikuje med velikimi in malimi črkami.