Ich bin etwas spät zur Party, aber vielleicht könnte das helfen. Der Link in der Frage hatte eine ähnliche Formel, aber meine verwendet die IF () - Anweisung, um Fehler zu beseitigen.
Wenn Sie keine Angst vor Strg + Umschalt + Eingabetaste haben, können Sie mit einer Array-Formel ziemlich gut umgehen.
Zeichenfolge (in Zelle A1): "one.two.three.four"
Formel:
{=MAX(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)))} use Ctrl+Shift+Enter
Ergebnis: 14
Zuerst,
ROW($1:$99)
Gibt ein Array von Ganzzahlen von 1 bis 99 zurück : {1,2,3,4,...,98,99}
.
Nächster,
MID(A1,ROW($1:$99),1)
Gibt ein Array von Zeichenfolgen mit einer Länge von 1 zurück, die in der Zielzeichenfolge gefunden wurden, und gibt leere Zeichenfolgen zurück, nachdem die Länge der Zielzeichenfolge erreicht wurde: {"o","n","e",".",..."u","r","","",""...}
Nächster,
IF(MID(I16,ROW($1:$99),1)=".",ROW($1:$99))
vergleicht jedes Element im Array mit der Zeichenfolge "." und gibt entweder den Index des Zeichens in der Zeichenfolge oder FALSE zurück:{FALSE,FALSE,FALSE,4,FALSE,FALSE,FALSE,8,FALSE,FALSE,FALSE,FALSE,FALSE,14,FALSE,FALSE.....}
Zuletzt,
=MAX(IF(MID(I16,ROW($1:$99),1)=".",ROW($1:$99)))
Gibt den Maximalwert des Arrays zurück: 14
Vorteile dieser Formel sind, dass sie kurz und relativ einfach zu verstehen ist und keine eindeutigen Zeichen erfordert.
Nachteile sind die erforderliche Verwendung von Strg + Umschalt + Eingabetaste und die Begrenzung der Zeichenfolgenlänge. Dies kann mit einer unten gezeigten Variation umgangen werden, aber diese Variation verwendet die OFFSET () -Funktion, die eine flüchtige (read: slow) Funktion ist.
Ich bin mir nicht sicher, wie schnell diese Formel im Vergleich zu anderen ist.
Variationen:
=MAX((MID(A1,ROW(OFFSET($A$1,,,LEN(A1))),1)=".")*ROW(OFFSET($A$1,,,LEN(A1)))) works the same way, but you don't have to worry about the length of the string
=SMALL(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)),2) determines the 2nd occurrence of the match
=LARGE(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)),2) determines the 2nd-to-last occurrence of the match
=MAX(IF(MID(I16,ROW($1:$99),2)=".t",ROW($1:$99))) matches a 2-character string **Make sure you change the last argument of the MID() function to the number of characters in the string you wish to match!