Finde die nte Position eines Zeichens innerhalb einer Zelle

Angelehnt an den Beitrag "Zählen eines bestimmten Zeichens innerhalb einer Zelle" wird hier eine Formel vorgestellt, wie die Position des nten Zeichens innerhalb einer Zelle ermittelt werden kann. So können ab einer bestimmten Position "platzsparend" bestimmte Informationen extrahiert werden, wie dies ansonsten beispielsweise mittels der Funktion "Text in Spalten" erledigt wird. Für die effektive Extraktion von Inhalten aus der jeweiligen Zeile kommt unter anderem die Formel "TEIL" zum Einsatz, die in dem Beitrag "Textfragmente aus einer Zelle ziehen" erläutert ist.

Mit "nte" Position wird eine beliebige Position innerhalb einer Zelle verstanden, wenn ein Zeichen vor allem mehrmals vorkommt. Als Beispiel habe ich hier einen Datensatz: "2018_08_21_RT_A_BA_1". Uns interessiert daraus beispielsweise der vierte Wert ("RT") - welcher das Kürzel des zuständigen Mitarbeiter darstellt. Demzufolge ist zu ermitteln, an welcher Position der dritte Underscore ("_") innerhalb der Zelle steht. Man könnte selbstverständlich die Zeichen selbst abzählen und eine TEIL-Formel anwenden, sofern die Datensätze konstant sind. Erfasst jedoch jemand beispielsweise das Datum nicht mit vorgängiger 0 (also lediglich eine "8" für den Monat August) und wird dies so vom System zugelassen, trifft die hinterlegte Regel nicht mehr zu. Hier ist eine Übersicht von diesen zwei Fällen. Durch die verwendete Formel kann die Position (10 oder 11) des dritten "_" stets ermittelt werden:

ListeUebersicht

Im bereits erwähnten und verlinkten Beitrag "Zählen eines bestimmten Zeichens innerhalb einer Zelle" ist die Formel "WECHSELN" bereits erklärt. Wir verwenden diese auch in diesem Anwendungsfall. Hier kommt zudem die Formel "FINDEN" zum Einsatz, bei welcher nach einem bestimmten Zeichen oder einer Zeichenfolge gesucht wird. Ich habe zum Ersetzen das ANSI-Zeichen "160" (Leerschritt ohne Zeilenumbruch) verwendet, doch können da auch beliebige Sonderzeichen verwendet werden, die sicher nicht in Eurem Datensatz vorkommen. Die vollumfängliche Formel in Spalte "D" lautet:

=FINDEN(ZEICHEN(160);WECHSELN(A2;C2;ZEICHEN(160);LÄNGE(A2)-LÄNGE(WECHSELN(A2;C2;""))-3))

Die gesamte Formel "WECHSELN(...)" zählt, wie häufig das entsprechende Zeichen vorkommt. Wichtig für die effektive Positionsermittlung ist die "-3". Dadurch wird gesteuert, welches "n" im Fokus steht. Hier könnte selbstverständlich ebenfalls eine dynamische Formel hinterlegt werden. Insgesamt enthält der Datensatz 6 Mal das Zeichen "_". Mit "-3" wird demnach die Position von n = 3 ermittelt. Mit dem ausgegebenen Wert könnte nun wie oben angedeutet die Formel "TEIL" angewandt werden, um die zwei Zeichen danach zu extrahieren. Abschliessend ist hier diese Formel ebenfalls angezeigt:

=TEIL(A2;FINDEN(ZEICHEN(160);WECHSELN(A2;C2;ZEICHEN(160);LÄNGE(A2)-LÄNGE(WECHSELN(A2;C2;""))-3))+1;2)

ListeKuerzel

Die vorgestellte Formel kann auch in einem anderem Kontext verwendet werden: So können Texte und Häufigkeiten sowie Positionen und Satzstellungen analysiert werden, um nur einige Anwendungsfälle zu nennen.

Zählen eines bestimmten Zeichens innerhalb einer Zelle

Mit den Formeln "ANZAHL" und "ZÄHLENWENN" lässt sich die Anzahl bestimmter Werte über mehrere Zellen hinweg ermitteln. Möchte man jedoch ein bestimmtes Zeichen innerhalb einer einzelnen Zelle zählen, benötigt das eine etwas andere Kombination von Formeln. Angenommen in Zelle "A1" steht unser Text:

ZaehlenTextfolge1

Wir möchten nun zählen, wie oft das Zeichen "e" darin vorkommt. Im untenaufgeführten Bildausschnitt wird dazu eine Hilfszelle (D1) verwendet. Die effektive Formel wird in der Zelle "D2" angewendet und ergibt im Falle des Textes "Alles Gute im Jahr 2018!" zwei. Die Formel lautet wie folgt:

=LÄNGE(A1)-LÄNGE(WECHSELN(A1;D1;""))

ZaehlenTextfolge2

Die oben genannte Formel macht folgendes: Sie zählt einerseits die Länge (Anzahl Zeichen) im Text. Mit dem Teil "WECHSELN(...)" wird innerhalb des Textes jedes "e" durch nichts ("") ersetzt und erneut die Länge (Anzahl Zeichen ohne "e") ermittelt. Die Differenz daraus ergibt demnach die Anzahl "e" innerhalb der Textfolge.

Alternativ könnte anstatt einer Hilfszelle (D1) auch einfach ein Wert eingegeben werden. Möchte man beispielsweise die Leerzeichen zählen (=4), wendet man folgende Formel an:

=LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))

D1 wurde hier durch " " ersetzt.

Einen Bericht drehen (Spalten zu Zeilen - Transponieren)

Angenommen Du hast nachfolgende Tabelle (die Überschrift befindet sich oberhalb der einzelnen Spalten):

DatenbankSpalten

Es besteht die Möglichkeit, diesen bestehenden Bericht zu drehen - mit einer einfachen Funktion; ohne, dass man sämtliche Zellen oder Inhalte manuell und einzeln kopieren oder abschreiben müsste. Markiere dazu den gesamten Bereich (im Beispiel oben "A1:C7") und kopiere diesen. Selektiere nun die gewünschte Zelle, wo die Informationen neu angezeigt werden sollten und gehe via Rechtsklick auf "Inhalte einfügen...":

BerichtDrehenInhalteEinfuegen

In nachfolgender Maske kannst Du theoretisch noch Einfüge-Optionen wie "Werte", "Formate" etc. wählen. Setze rechts unten den Haken bei "Transponieren" - diese Funktion dreht Deinen gesamten Bericht / Deine Tabelle.

BerichtDrehenTransponieren

Das Ergebnis:

DatenbankZeilen

Aus Spalten wurden also Zeilen. Beachte, dass ich absichtlich Zeile 10 (oder eine Zeile unterhalb der vorherigen Daten) selektiert habe. Man kann nämlich nicht einfach den Bereich kopieren und an selber Stelle wieder einfügen und so quasi den vorherigen Bericht überschreiben. Dabei kommt nachfolgende Fehlermeldung:

BerichtDrehenFehlermeldung

Wähle also stets einen anderen Bereich und lösche daraufhin Deine vorherigen Daten. An dieser Stelle fragst Du Dich vielleicht, weshalb man nicht gleich die Ursprungstabelle ausschneidet. Die Möglichkeit mit "Inhalte einfügen" steht beim Ausschneiden gar nicht erst zur Verfügung.