
Generisk formel
=MATCH(1,EXACT(LEFT(A1,255),LEFT(rng,255))*EXACT(MID(A1,256,255),MID(rng,256,255)),0)
Resumé
For at matche tekst, der er længere end 255 tegn med MATCH-funktionen, kan du bruge LEFT, MID og EXACT-funktionerne til at analysere og sammenligne tekst som forklaret nedenfor. I det viste eksempel er formlen i G5:
=MATCH(1,EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255)),0)
hvor data er det navngivne område B5: B15.
Bemærk: denne formel udfører en sagsfølsom sammenligning.
Forklaring
MATCH-funktionen har en grænse på 255 tegn for opslagsværdien. Hvis du prøver at bruge længere tekst, returnerer MATCH en #VALUE-fejl.
For at løse denne grænse kan du bruge boolsk logik og funktionerne VENSTRE, MIDDEL og NÆRKOMMEN til at analysere og sammenligne tekst.
Strengen, vi tester med i celle E5, er 373 tegn som følger:
Lorem ipsum dolor amet satte en fugl på det listicle trust fund, enhjørningsdampcyklerettigheder, du sandsynligvis ikke har hørt om dem overskæg. Foder helvetica crusty semiotics faktisk arvestykke. Tumblr poutine enhjørning godard prøve hårdt, før de udsolgt narwhal meditation kitsch vest vest fixie twee bogstaveligt hættetrøje retro. Messenger taske helvede med crusty grøn juice håndværker.
I kernen er dette kun en MATCH-formel, der er indstillet til at lede efter 1 i nøjagtig matchningstilstand:
=MATCH(1,array,0)
Matrixen i formlen ovenfor indeholder kun 1s og 0s, og 1s repræsenterer matchende tekst. Denne matrix er konstrueret af følgende udtryk:
EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255))
Selve dette udtryk har to dele. Til venstre har vi:
EXACT(LEFT(E5,255),LEFT(data,255)) // compare first 255 chars
Her udtrækker VENSTRE-funktionen de første 255 tegn fra E5 og fra alle celler i de navngivne områdedata (B5: B15). Da data indeholder 11 tekststrenge, vil LEFT generere 11 resultater.
Funktionen EJAKT sammenligner derefter den enkelte streng fra E5 med alle de 11 strenge, der returneres af VENSTRE. EXACT returnerer 11 resultater i en matrix som denne:
(FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Til højre har vi et andet udtryk:
EXACT(MID(E5,256,255),MID(data,256,255) // compare next 255 chars
Dette er nøjagtig den samme tilgang som brugt med VENSTRE, men her bruger vi MID-funktionen til at udtrække de næste 255 tegn tekst. EXACT-funktionen returnerer igen 11 resultater:
(TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Når de to arrays ovenfor multipliceres med hinanden, tvinger matematikoperationen de SANDE FALSE-værdier til 1s og 0s. Efter reglerne for boolsk aritmetik er resultatet en matrix som denne:
(0;0;0;0;0;0;0;0;0;1;0)
som returneres direkte til MATCH som opslagsarray. Formlen kan nu løses til:
=MATCH(1,(0;0;0;0;0;0;0;0;0;1;0),0)
MATCH-funktionen udfører et nøjagtigt match og returnerer et slutresultat på 10, som repræsenterer den tiende tekststreng i B5: B15.
Bemærk: Tekstlængden vist i eksemplet beregnes med LEN-funktionen. Det vises kun som reference.
Sag-ufølsom mulighed
Den PRÆCIS-funktion er store og små bogstaver, så formlen ovenfor respekterer store og små bogstaver.
For at udføre et store og små bogstaver med lang tekst bruger du funktionerne ISNUMBER og SEARCH som følger:
=MATCH(1,ISNUMBER(SEARCH(LEFT(E5,255),LEFT(data,255)))*ISNUMBER(SEARCH(MID(E5,256,255),MID(data,256,255))),0)
Den overordnede struktur for denne formel er identisk med eksemplet ovenfor, men SEARCH-funktionen bruges i stedet for EXAKT til at sammenligne tekst (forklaret detaljeret her).
I modsætning til EXACT understøtter SEARCH-funktionen også jokertegn.
Med XMATCH
XMATCH-funktionen har ikke den samme grænse på 255 tegn som MATCH. For at udføre en lignende kamp på lang tekst med XMATCH kan du bruge den meget enklere formel nedenfor:
=XMATCH(E5,data)
Bemærk: XMATCH understøtter jokertegn, men er ikke store og små bogstaver.