Excel-Formel: Finden Sie die längste Zeichenfolge mit Kriterien -

Generische Formel

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

Zusammenfassung

Um die längste Zeichenfolge in einem Bereich mit Kriterien zu finden, können Sie eine Array-Formel verwenden, die auf INDEX, MATCH, LEN und MAX basiert. In dem gezeigten Beispiel lautet die Formel in F6:

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

Wobei "Namen" der benannte Bereich C5: C14 und "Klasse" der benannte Bereich B5: B14 ist.

Hinweis: Dies ist eine Array-Formel und muss mit Strg + Umschalt + Eingabe eingegeben werden.

Erläuterung

Der Kern dieser Formel ist die MATCH-Funktion, mit der die Position der längsten Zeichenfolge anhand der angegebenen Kriterien ermittelt wird:

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

Hinweis MATCH ist so eingerichtet, dass eine exakte Übereinstimmung durchgeführt wird, indem für den Übereinstimmungstyp Null angegeben wird. Für den Suchwert haben wir:

LEN(names)*(class=F5)

Die LEN-Funktion gibt ein Array von Ergebnissen (Längen) zurück, eines für jeden Namen in der Liste, wobei class = "A" aus Zelle F5:

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

Dadurch wird die gesamte Klasse B effektiv herausgefiltert, und die MAX-Funktion gibt dann den größten Wert 8 zurück.

Um ein Lookup-Array zu erstellen, verwenden wir denselben Ansatz:

LEN(names)*(class=F5)

Und erhalten Sie das gleiche Ergebnis:

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

Nach dem Ausführen von LEN und MAX haben wir eine MATCH-Formel mit folgenden Werten:

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

MATCH gibt dann die Position 8 in der Liste 3 zurück, die wie folgt in INDEX eingespeist wird:

=INDEX(names,3)

Schließlich gibt INDEX pflichtbewusst den Wert an der 3. Position von Namen zurück , nämlich "Jonathan".

Interessante Beiträge...