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.

Zahl in Buchstabe umwandeln

Mit der nachfolgenden Formel lässt sich eine Zahl in einen Buchstaben umwandeln - die Zahl 1 wird zum Buchstaben A, die 2 entspricht einem B und so weiter:

=ZEICHEN(BEZUG+64)

Zu einem Bezug (bspw. "A1") oder direkt einer Zahl (1, 2, 3, ...) wird einfach 64 aufaddiert - dies ergibt den entsprechenden Buchstaben des Alphabets.

ZahlInBuchstabe

Daraufhin kann mit der Formel "=INDIREKT" ein Bezug hergestellt werden. Auf die Zelle "A1" kann man sich mit der folgenden Formel beziehen:

=INDIREKT("A1")

Kombiniert mit der oben dargestellten ZEICHEN-Formel wäre dies:

=INDIREKT(ZEICHEN(A1+64)&"1")

Beachte, dass wir mittels dem kaufmännischen Und (&) Formeln und Text verknüpfen. Dieser Aspekt wurde bereits ausführlich im Beitrag "Zeilenumbruch innerhalb einer Formel (Formel-Text-Kombination)" erläutert.

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.