Häufigste Buchstabenfolge über mehrere Spalten ermitteln

28/04/2009 - 22:14 von Rainer Denzer | Report spam
Hallo zusammen,

habe folgendes Problem.

Ich habe folgende Excel-Tabelle:

bbb a aaa aaa aaa bbb a aaa aaa ... (usw).

D.h. in vielen nebeneinander liegenden Spalte sind entweder Blanks, "a"
oder "b". In jeder Zelle 1 bis 3 Zeichen.

Jetzt suchen ich die làngste Sequenz des Buchstaben "a" über alle Zellen
hinweg - und das am liebsten ohne VBA.

Im obigen Beispiel wàre das 10.

Mein bisherigen Ansatz:

Über ein Array lese ich alle Zellen ein und ermittel Wahrheitswerte, die
ich in 1 und 0 transferiere.

{=SUMME((TEIL(I4:L4;ZEILE(1:3);1)="a")*1)}

Leider liefert mir diese Matrix die Werte aber nicht in der richtigen
Reihenfolge, da aufgrund von Zeile (1:3) mir natürlich zunàchst das
erste Zeichen jeder Spalte und dann das Zweite und Dritte angezeigt wird.

Kann ich die Matrix auch anders aufbauen, dass ich anschliessend die
Werte alle in einem Array habe.

Hat jemand eine Idee?

Dann kann ich anschliessend über "Wechseln" alle Sonderzeichen
rauswerfen und hàtte den String den ich im nàchsten Schritt analysieren
möchte. Die notwendige Formel habe ich schon bei Excelformeln gefunden
und die funktioniert auch:
=MAX((LÄNGE(WECHSELN($K$34&".";WIEDERHOLEN("1.";ZEILE($1:$1000));)) <
LÄNGE($K$34&"."))*ZEILE($1:$1000))

Oder ist mein Ansatz zu kompliziert und gibt es eine einfachere
Möglichkeit die größe Sequenz des Zeichens "a" in einem beliebigen
String zu ermitteln.

Schönen Gruß
Rainer
 

Lesen sie die antworten

#1 Michael Franke
29/04/2009 - 06:09 | Warnen spam
Hallo Rainer,

On 28 Apr., 22:14, Rainer Denzer wrote:
Hallo zusammen,

habe folgendes Problem.

Ich habe folgende Excel-Tabelle:

bbb     a       aaa     aaa     aaa     bbb     a       aaa     aaa ... (usw).

D.h. in vielen nebeneinander liegenden Spalte sind entweder Blanks, "a"
oder "b". In jeder Zelle 1 bis 3 Zeichen.

Jetzt suchen ich die làngste Sequenz des Buchstaben "a" über alle Zellen
hinweg - und das am liebsten ohne VBA.

Im obigen Beispiel wàre das 10.

Mein bisherigen Ansatz:

Über ein Array lese ich alle Zellen ein und ermittel Wahrheitswerte, die
ich in 1 und 0 transferiere.

{=SUMME((TEIL(I4:L4;ZEILE(1:3);1)="a")*1)}

Leider liefert mir diese Matrix die Werte aber nicht in der richtigen
Reihenfolge, da aufgrund von Zeile (1:3) mir natürlich zunàchst das
erste Zeichen jeder Spalte und dann das Zweite und Dritte angezeigt wird.

Kann ich die Matrix auch anders aufbauen, dass ich anschliessend die
Werte alle in einem Array habe.

Hat jemand eine Idee?

Dann kann ich anschliessend über "Wechseln" alle Sonderzeichen
rauswerfen und hàtte den String den ich im nàchsten Schritt analysieren
möchte. Die notwendige Formel habe ich schon bei Excelformeln gefunden
und die funktioniert auch:
=MAX((LÄNGE(WECHSELN($K$34&".";WIEDERHOLEN("1.";ZEILE($1:$1000));)) <
LÄNGE($K$34&"."))*ZEILE($1:$1000))

Oder ist mein Ansatz zu kompliziert und gibt es eine einfachere
Möglichkeit die größe Sequenz des Zeichens "a" in einem beliebigen
String zu ermitteln.

Schönen Gruß
Rainer



wenn Deine Werte in Zeile 1 liegen (beginnend bei Zelle A1):

A2: =LÄNGE(A1) > nach rechts kopieren
A3: =TEIL(A1;1;1) > nach rechts kopieren
A4: ¢
B4: =WENN(B3£;B2+A4;B2) > nach rechts kopieren

In Zeile 4 kannst Du nun die Lànge der Sequenzen ablesen. Geht
wahrscheinlich auch kürzer, aber funktioniert ohne großen Aufwand.

Gruß, Michael

Ähnliche fragen