Excel formel: Find længste streng med kriterier -

Generisk formel

(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))

Resumé

For at finde den længste streng i et interval med kriterier kan du bruge en matrixformel baseret på INDEX, MATCH, LENGE og MAX. I det viste eksempel er formlen i F6:

(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)))

Hvor "navne" er det navngivne område C5: C14, og "klasse" er det navngivne område B5: B14.

Bemærk: dette er en matrixformel og skal indtastes med kontrol + skift + enter.

Forklaring

Kernen i denne formel er MATCH-funktionen, som lokaliserer positionen for den længste streng ved hjælp af leverede kriterier:

MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)

Bemærk, at MATCH er indstillet til at udføre et nøjagtigt match ved at angive nul for matchtype. For opslagsværdi har vi:

LEN(names)*(class=F5)

LEN-funktionen returnerer en matrix med resultater (længder), en for hvert navn på listen, hvor klasse = "A" fra celle F5:

(5;6;8;6;6;0;0;0;0;0)

Dette filtrerer effektivt hele klasse B ud, og MAX-funktionen returnerer derefter den største værdi, 8.

For at konstruere et opslagsarray bruger vi den samme tilgang:

LEN(names)*(class=F5)

Og få det samme resultat:

(5;6;8;6;6;0;0;0;0;0)

Efter LEN og MAX-kørsel har vi en MATCH-formel med disse værdier:

MATCH(8,(5;6;8;6;6;0;0;0;0;0),0))

MATCH returnerer derefter positionen 8 på listen, 3, der føjes til INDEX sådan:

=INDEX(names,3)

Endelig returnerer INDEX pligtmæssigt værdien i 3. position af navne , som er "Jonathan".

Interessante artikler...