Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Textfunktionen

Beitrag: Ziffern beliebiger Anordnung aus einem Text extrahieren

Aufgabe
Wie können beliebige Ziffern aus einem Text beliebiger Länge gezogen werden ?

Beispiel:
1qw23er45--> 12345
01qw96er78--> 019678

Lösung
ignoriert führende Nullen:

{=SUMME((TEIL(0&A1;KGRÖSSTE(WENN(ISTZAHL(TEIL(0&A1;ZEILE($1:$256);1)*1);ZEILE($1:$256);1);ZEILE($1:$256));1)*1)*10^(ZEILE($1:$256)-1))}

beachtet führende Nullen:

{=TEXT(SUMME((TEIL(0&A1;KGRÖSSTE(WENN(ISTZAHL(TEIL(0&A1;ZEILE($1:$256);1)*1);ZEILE($1:$256);1);ZEILE($1:$256));1)*1)*10^(ZEILE($1:$256)-1));WIEDERHOLEN(0;SUMME(ISTZAHL(TEIL(A1;ZEILE($1:$256);1)*1)*1)))}

Achtung: Wegen der Rechengenauigkeit von Excel ist nach 15 Ziffern Sense.
Fließkommazahlen werden nicht extrahiert.

Seit Excel 365 (egal, wie viele Ziffern, da das Ergebnis als Text ausgegeben wird):
=TEXTKETTE(SCAN("";TEIL(A1;SEQUENZ(99);1);LAMBDA(a;b;WENN(ISTZAHL(--b);b;""))))
Alternativ auch mit NACHZEILE:
=TEXTKETTE(NACHZEILE(TEIL(A1;SEQUENZ(99);1);LAMBDA(b;WENN(ISTZAHL(--b);b;""))))
Die 99 bei SEQUENZ steht für die maximale Länge des Textes. Die Zahl also bei längeren Texten entsprechend erhöhen oder an die exakte Textlänge anpassen mit SEQUENZ(LÄNGE(A1)).
Erläuterung
Das Gegenteil - also alle Ziffern eliminieren: siehe Formel Nr. 174