Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Textfunktionen - BEITRAG: Aus einem String die längste Serie eines Teilstrings ermitteln *


Aufgabe
Aus einem langen Text soll die längste Serie eines Teiltextes ermittelt werden.
Beispiel:
In A2 steht: 2,2,2,3,3,3,4,4,2,2,2,2,2,3,4
Gesucht ist die längste Serie der 2er (ohne Unterbrechung).
Ergebnis: 5
Lösung
In A2 steht der String
In B2 steht der gesuchte Wert (hier: 2)
In C2 steht das Trennzeichen (hier das , Komma)

In D2 dieser Array:
{=MAX((LÄNGE(WECHSELN(A2&C2;WIEDERHOLEN(B2&C2;ZEILE($1:$1000));)) < LÄNGE(A2&C2))*ZEILE($1:$1000))}


Etwas länger, dafür performanter:
{=MAX((LÄNGE(WECHSELN(A2&C2;WIEDERHOLEN(B2&C2;ZEILE(INDIREKT("1:"&LÄNGE(A2))));)) < LÄNGE(A2&C2))*ZEILE(INDIREKT("1:"&LÄNGE(A2))))}


ohne Array-Formel:
=VERWEIS(2;1/(LÄNGE(WECHSELN(A2&C2;WIEDERHOLEN(B2&C2;ZEILE($1:$1000));)) < LÄNGE(A2&C2));ZEILE($1:$1000))

Variante von Hans W. Hofmann ohne Trennzeichen (03.06.2012)

In A3 steht z.B. "AABBBAAAAAABBBBAAAAAAAAABBBAAAAAABAAAAAAABBAAAABBBBBAAAAAABB"
und man möchte die längste Serie der aufeinanderfolgenden "A" herausfinden:

=100-SUMMENPRODUKT(ISTFEHLER(FINDEN(WIEDERHOLEN("A";ZEILE(A1:A100));A3))*1)

Ergebnis: 9

Als Arrayvariante etwas kürzer:
{=ANZAHL(FINDEN(WIEDERHOLEN("A";ZEILE(A1:A100));A3))}

Erläuterung
Funktioniert natürlich auch mit anderen Trennzeichen.
Trennzeichen und Suchstring können auch eine Länge größer 1 haben.