
Všeobecný vzorec
=MATCH(1,EXACT(LEFT(A1,255),LEFT(rng,255))*EXACT(MID(A1,256,255),MID(rng,256,255)),0)
Zhrnutie
Ak chcete priradiť text dlhší ako 255 znakov k funkcii MATCH, môžete pomocou funkcií LEFT, MID a EXACT analyzovať a porovnávať text, ako je vysvetlené nižšie. V zobrazenom príklade je vzorec v G5:
=MATCH(1,EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255)),0)
kde údajmi je pomenovaný rozsah B5: B15.
Poznámka: tento vzorec vykonáva porovnanie veľkých a malých písmen.
Vysvetlenie
Funkcia MATCH má pre vyhľadávaciu hodnotu limit 255 znakov. Ak sa pokúsite použiť dlhší text, MATCH vráti chybu #HODNOTA.
Ak chcete obísť tento limit, môžete na analýzu a porovnanie textu použiť logickú logiku a funkcie LEFT, MID a EXACT.
Reťazec, s ktorým testujeme v bunke E5, má 373 znakov:
Lorem ipsum dolor amet vložil vtáka do fondu trustový fond, práva na jednorazové bicykle pre jednorožce, o ktorých ste pravdepodobne ešte nepočuli fúzy. Krmivo helvetica krustová semiotika vlastne dedičstvo. Tumblr Poutine Unicorn Godard vyskúšali predtým, ako vypredali narvalnu meditačnú gýčovú vestu Fixie Twee, doslova mikinu s kapucňou. Messenger taška pekelná krehká zelená šťava remeselník.
V jadre ide iba o MATCHOVÝ vzorec nastavený na hľadanie 1 v režime presnej zhody:
=MATCH(1,array,0)
Pole vo vyššie uvedenom vzorci obsahuje iba 1 s a 0 s a 1 s predstavuje zodpovedajúci text. Toto pole je zostavené z nasledujúceho výrazu:
EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255))
Samotný tento výraz má dve časti. Naľavo máme:
EXACT(LEFT(E5,255),LEFT(data,255)) // compare first 255 chars
Funkcia LEFT tu extrahuje prvých 255 znakov z E5 a zo všetkých buniek v pomenovaných údajoch rozsahu (B5: B15). Pretože dáta obsahujú 11 textových reťazcov, LEFT vygeneruje 11 výsledkov.
Funkcia EXACT potom porovnáva jeden reťazec z E5 so všetkými 11 reťazcami vrátenými pomocou LEFT. Funkcia EXACT vráti 11 výsledkov v takomto poli:
(FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Vpravo máme ďalší výraz:
EXACT(MID(E5,256,255),MID(data,256,255) // compare next 255 chars
Jedná sa o úplne rovnaký prístup, aký sa používa v prípade možnosti LEFT, tu však používame funkciu MID na extrahovanie nasledujúcich 255 znakov textu. Funkcia EXACT opäť vráti 11 výsledkov:
(TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Keď sa dve vyššie uvedené polia navzájom vynásobia, matematická operácia vynúti hodnoty TRUE FALSE na 1 s a 0 s. Podľa pravidiel boolovskej aritmetiky je výsledkom pole podobné tomuto:
(0;0;0;0;0;0;0;0;0;1;0)
ktorá sa vráti priamo do MATCH ako vyhľadávacie pole. Vzorec je možné teraz vyriešiť na:
=MATCH(1,(0;0;0;0;0;0;0;0;0;1;0),0)
Funkcia MATCH vykoná presnú zhodu a vráti konečný výsledok 10, čo predstavuje desiaty textový reťazec v B5: B15.
Poznámka: dĺžka textu uvedená v príklade sa počíta pomocou funkcie LEN. Zobrazuje sa iba pre informáciu.
Možnosť nerozlišuje veľké a malé písmená
Funkcia EXACT rozlišuje veľké a malé písmená, takže vyššie uvedený vzorec bude rešpektovať veľké a malé písmená.
Ak chcete vykonať zhodu s malými a veľkými písmenami s dlhým textom, použijete funkcie ISNUMBER a SEARCH nasledovne:
=MATCH(1,ISNUMBER(SEARCH(LEFT(E5,255),LEFT(data,255)))*ISNUMBER(SEARCH(MID(E5,256,255),MID(data,256,255))),0)
Celková štruktúra tohto vzorca je rovnaká ako v predchádzajúcom príklade, ale na porovnanie textu sa namiesto funkcie EXACT používa funkcia SEARCH (podrobne vysvetlené tu).
Na rozdiel od PRESNEHO, funkcia SEARCH podporuje aj zástupné znaky.
S XMATCH
Funkcia XMATCH nemá rovnaké obmedzenie 255 znakov ako MATCH. Ak chcete vykonať podobnú zhodu s dlhým textom pomocou nástroja XMATCH, môžete použiť oveľa jednoduchší vzorec uvedený nižšie:
=XMATCH(E5,data)
Poznámka: XMATCH podporuje zástupné znaky, nerozlišuje sa v ňom veľkosť písmen.