Excel-formel: Match lang tekst -

Generisk formel

=MATCH(1,EXACT(LEFT(A1,255),LEFT(rng,255))*EXACT(MID(A1,256,255),MID(rng,256,255)),0)

Sammendrag

For å matche tekst som er lengre enn 255 tegn med MATCH-funksjonen, kan du bruke LEFT, MID og EXACT-funksjonene til å analysere og sammenligne tekst, som forklart nedenfor. I eksemplet vist er formelen i G5:

=MATCH(1,EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255)),0)

der data er det navngitte området B5: B15.

Merk: denne formelen utfører en saksfølsom sammenligning.

Forklaring

MATCH-funksjonen har en grense på 255 tegn for oppslagsverdien. Hvis du prøver å bruke lengre tekst, vil MATCH returnere en #VALUE-feil.

For å løse denne grensen, kan du bruke boolsk logikk og funksjonene VENSTRE, MIDDEL og Nøyaktig til å 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å den listicle trust fund, unicorn vaporware sykkelrettigheter du sannsynligvis ikke har hørt om dem bart. Forage helvetica crusty semiotics faktisk arvestykke. Tumblr poutine enhjørning godard prøve-hardt før de solgte ut narwhal meditasjon kitsch vest vest fixie twee bokstavelig hettegenser retro. Bæreveske helvete med crusty green juice håndverker.

I kjernen er dette bare en MATCH-formel, satt opp for å se etter 1 i eksakt samsvarsmodus:

=MATCH(1,array,0)

Matrisen i formelen ovenfor inneholder bare 1s og 0s, og 1s representerer samsvarende tekst. Denne matrisen er konstruert av følgende uttrykk:

EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255))

Selve dette uttrykket har to deler. Til venstre har vi:

EXACT(LEFT(E5,255),LEFT(data,255)) // compare first 255 chars

Her trekker VENSTRE-funksjonen ut de 255 første tegnene fra E5, og fra alle celler i de nevnte områdedataene (B5: B15). Siden data inneholder 11 tekststrenger, vil LEFT generere 11 resultater.

EXACT-funksjonen sammenligner deretter enkeltstrengen fra E5 med alle de 11 strengene som returneres av VENSTRE. EXACT returnerer 11 resultater i en matrise som dette:

(FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)

Til høyre har vi et annet uttrykk:

EXACT(MID(E5,256,255),MID(data,256,255) // compare next 255 chars

Dette er nøyaktig samme tilnærming som brukt med VENSTRE, men her bruker vi MID-funksjonen til å trekke ut de neste 255 tegnene. EXACT-funksjonen returnerer igjen 11 resultater:

(TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)

Når de to gruppene ovenfor multipliseres med hverandre, tvinger matteoperasjonen de SANNE FALSE-verdiene til 1 og 0. Etter reglene for boolsk aritmetikk er resultatet en matrise som dette:

(0;0;0;0;0;0;0;0;0;1;0)

som returneres direkte til MATCH som oppslagsmatrise. Formelen kan nå løses til:

=MATCH(1,(0;0;0;0;0;0;0;0;0;1;0),0)

MATCH-funksjonen utfører en nøyaktig samsvar, og returnerer et endelig resultat på 10, som representerer den tiende tekststrengen i B5: B15.

Merk: Tekslengden vist i eksemplet beregnes med LEN-funksjonen. Den vises bare som referanse.

Tilfelle-ufølsom alternativ

Den eksakte funksjonen er skiftesensitiv, så formelen ovenfor respekterer store og små bokstaver.

For å utføre en liten bokstavsfølsom samsvar med lang tekst, bruker du funksjonene ISNUMBER og SØK 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 generelle strukturen til denne formelen er identisk med eksemplet ovenfor, men SEARCH-funksjonen brukes i stedet for EXAKT for å sammenligne tekst (forklart i detalj her).

I motsetning til EXACT støtter SEARCH-funksjonen også jokertegn.

Med XMATCH

XMATCH-funksjonen har ikke den samme grensen på 255 tegn som MATCH. For å utføre en lignende kamp på lang tekst med XMATCH, kan du bruke den mye enklere formelen nedenfor:

=XMATCH(E5,data)

Merk: XMATCH støtter jokertegn, men er ikke mellom store og små bokstaver.

Interessante artikler...