Wie man nur Zahlen aus einer Excel-Zelle extrahiert (7 einfache Methoden)

  • Teile Das
Hugh West

Obwohl Microsoft keine eindeutige Formel oder Syntax zur Verfügung gestellt hat nur Zahlen extrahieren aus der Excel-Zelle können wir eine breite Palette von Excel-Formeln In diesem Artikel werden wir versuchen, im Detail zu zeigen und zu erklären, wie wir mit den entsprechenden Formeln unter Berücksichtigung einiger Kriterien nur Zahlen aus den Zellen herausholen können.

Download Arbeitsbuch Praxis

Laden Sie das Übungsbuch, das wir zur Vorbereitung dieses Artikels verwendet haben, kostenlos herunter. Sie können die Textwerte mit Zahlen in die ausgewählten Zellen eingeben und die Ergebnisse sofort durch eingebettete Formeln ermitteln.

Extrahieren von Zahlen aus Cell.xlsm

7 effektive Methoden, um nur Zahlen aus einer Excel-Zelle zu extrahieren

Es gibt einen VBA-Code, eine Excel-Funktion und fünf praktische Formeln, die Ihnen helfen, Zahlen aus einer Zelle zu extrahieren. Wie in der Abbildung unten haben wir einige Codes, die Ziffern und Buchstaben enthalten, wobei die Ziffern am Anfang stehen. Wir müssen nur diese Ziffern oder Zahlen extrahieren.

1 Zahlen am Anfang eines Textes herausziehen

In dieser ersten Methode werden wir die LINKS , SUMME , LEN und UNTERSTÜTZUNG Funktionen, um Zahlen vom Anfang einer Textzeichenfolge zu ziehen. Zuerst geben wir diese Formel in die Zelle ein, und dann, mit den Füllgriff kopieren wir diese Formel in die übrigen Zellen.

Schritte:

  • Geben Sie zunächst die Formel in die Zelle C5 .

=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0","1","2","3","4","5","6","7","8","9"},""))))

  • Zweitens: Drücken Sie Eingabe und Sie erhalten die Nummer 34 für den ersten Code.

  • Drittens: Verwenden Sie die Füllen Griff dann alle anderen Zellen der Spalte automatisch ausfüllen C .

🔎 Formel Aufschlüsselung

SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")

  • Hier ist die UNTERSTÜTZUNG sucht die Ziffern (0-9) nacheinander und ersetzt sie, wenn sie gefunden wird, in der Zelle B5 Die Funktion wird also als {"34DTXRF", "34DTXRF", "34DTXRF", "4DTXRF", "3DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF"} zurückgegeben.

LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))

  • Die LEN Funktion bestimmt die Anzahl der Zeichen in einer Zeichenkette. Hier wird also die LEN Funktion zählt alle Zeichen, die einzeln in den Texten gefunden werden, durch die UNTERSTÜTZUNG Die resultierenden Werte sind in unserem Fall {7,7,7,6,6,7,7,7,7,7,7,7}.

LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")))

  • Nun, dieser Teil ist die Subtraktion von der Anzahl der Zeichen in der Zelle B5 zu allen anderen Zeichenzahlen, die im vorherigen Abschnitt der Formel einzeln gefunden wurden. Hier sind die resultierenden Werte also - {0,0,0,1,1,0,0,0,0,0,0}.

SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")))

  • Die SUMME Funktion addiert dann einfach alle subtrahierten Werte, die & gefunden hat; das Ergebnis liegt also hier, 2 (0+0+0+1+1+0+0+0+0+0).

=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))))

  • Und jetzt kommt der letzte Teil, in dem die LINKS Funktion gibt die Werte mit der exakten Anzahl der Zeichen von links zurück, die im vorherigen Abschnitt der Formel gefunden wurden. Da wir den Summenwert 2 erhalten haben, wird die LINKS Funktion liefert hier nur 34 aus dem Text 34DTXRF .

Verwandt: Trennen von Zahlen in Excel mit Hilfe von Formeln (5 Möglichkeiten)

2 Zahlen von der rechten Seite eines Textes extrahieren

In diesem Abschnitt werden wir die Zahlen oder Ziffern von der rechten Seite der Textzeichenfolge extrahieren. Wir werden die RECHTS , MIN und SUCHEN funktioniert hier.

Schritte:

  • Zunächst einmal müssen wir in unserem Datensatz in die Zelle C5 ist-

=RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789")) +1)

  • Drücken Sie anschließend Eingabe und verwenden Sie dann die Füllen Griff um den Rest der Zellen automatisch auszufüllen.

🔎 Formel Aufschlüsselung

B5& "0123456789″.

  • Hier verketten wir Werte in der Datei B5 Zelle mit 0123456789 durch die Verwendung von Ampersand (&) zwischen ihnen und wir erhalten den resultierenden Wert als DTXRF340123456789.

SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″)

  • Nun, die SUCHEN sucht nacheinander alle Ziffern (0-9) in dem aus dem vorherigen Abschnitt erhaltenen Ergebnis und gibt die Positionen dieser 10 Ziffern in den Zeichen von DTXRF340123456789 Unsere resultierenden Werte sind also {8,9,10,6,7,13,14,15,16,17}.

MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″))

  • Die MIN Funktion wird verwendet, um die niedrigste Ziffer oder Zahl in einem Array zu finden. Hier wird also der niedrigste Wert - 6 aus dem Feld {8,9,10,6,7,13,14,15,16,17}, das im vorangehenden Abschnitt der Formel gefunden wurde.

LEN(B5) - MIN(SUCHEN({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789″)) +1)

  • Nun, die Anzahl der Zeichen in B5 wird von der LEN Dann subtrahiert sie den Wert 6 (aus dem letzten Abschnitt) und gibt das Ergebnis zurück, indem sie 1 addiert. In unserem Fall ist der resultierende Wert 2 (7-6+1) .

RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789″)) +1)

  • Die RECHTS Funktion gibt die angegebene Anzahl von Zeichen von der letzten oder rechten Seite einer Zeichenkette zurück. In Anlehnung an das Ergebnis, das durch den Subtraktionsprozess im vorherigen Abschnitt gefunden wurde, wird hier die RECHTS Funktion zeigt die letzten 2 Zeichen der Zelle B5 und das wird sein 34 .

Lesen Sie mehr: Wie man Zahlen in einer Zelle in Excel trennt (5 Methoden)

3 Extrahieren von Zahlen aus einem beliebigen Teil einer Zeichenkette

Hier ist nun eine umfassende Lösung für alle Fälle. Diese Methode zieht Zahlen oder Ziffern aus jeder beliebigen Position in einem Textstring heraus. Außerdem verwenden wir die TEXTJOIN , IFERROR , INDIRECT , MID und ROW Funktionen in dieser Methode.

Schritte:

  • Geben Sie zunächst die Formel wie folgt in Ihre Zielzelle ein

=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),""))

  • Dann, wenn Sie Excel 2016 oder einer höheren Version und drücken Sie dann Eingabe , sonst drücken Sie Strg+Umschalt+Eingabe um das Ergebnis für diese Array-Formel zu erhalten.
  • Nach diesem Schritt füllen Sie andere Zellen automatisch mit der Option Füllen Griff und Sie sind fertig.

🔎 Formel Aufschlüsselung

INDIRECT("1:"&LEN(B5))

  • Die INDIRECT Funktion wird verwendet, um ein Array von Zellwerten als Referenztext zu speichern. Hier wird das kaufmännische Und (&) Befehl verkettet die Länge der Zeichen der Zelle B5 mit unvollständiger Bereichssyntax (1:) .
  • Also, hier die INDIRECT Funktion speichert alle Zahlen zwischen 1 und der Länge der Zeichen in der Zelle B5 als Referenztext.

ROW(INDIRECT("1:"&LEN(B5)))

  • Die ROW Funktion gibt normalerweise die Zeilennummer einer Zelle an, aber hier in der INDIRECT Funktion, da keine Referenzzelle erwähnt wurde, in diesem Fall die ROW Funktion extrahiert alle Werte oder Zahlen aus den Referenztexten, die in der INDIRECT Funktion.
  • Jetzt, für die 1. Zelle B5 die sich daraus ergebenden Werte durch diese ROW und INDIRECT Funktionen werden sein: {1;2;3;4;5;6;7;8;9}.

(MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1))

  • Die MID Funktion können Sie die Zeichen in der Mitte einer Zeichenkette bestimmen, wenn Sie eine Startposition & Länge angeben.
  • Für alle 9 Positionen, die im vorangegangenen Abschnitt gefunden wurden, gilt also, dass die MID Funktion zeigt nun alle Zeichen nacheinander für jede Position & gibt also die Werte als- {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"} zurück.

IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),"")

  • Nun, die IFERROR ist eine logische Funktion, die feststellt, ob eine Zeichenkette eine Zahl oder etwas anderes ist. Wenn sie keine Zeichenkette mit Zahlen oder Ziffern erkennt, gibt sie den Wert mit einem definierten Textbefehl zurück.
  • In unserem Fall werden alle im letzten Abschnitt gefundenen Werte mit 1 multipliziert, und wenn die Ergebnisse als Wertfehler für Buchstaben oder Textwerte zurückgegeben werden, die nicht multipliziert werden können, werden ihre IFERROR Funktion wandelt die Fehler in leere Zeichenketten um, so dass die resultierenden Werte dann {1;9;"";"";"";"";2;"";""} lauten.

=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),""))

  • Und nun wird der letzte Teil durch die TEXTJOIN Diese Funktion wird verwendet, um zwei Zeichenketten mit einem bestimmten Begrenzungszeichen zu verbinden oder zu verketten.
  • Die im vorangegangenen Abschnitt ermittelten Werte werden nun mit den folgenden Werten zusammengeführt TEXTJOIN Und so erhalten wir die Zahl 192.

Lesen Sie mehr: Wie man mehrere Zahlen aus einer Zeichenfolge in Excel extrahiert (6 Methoden)

4. mehrere Funktionen verschachteln, um nur Zahlen herauszubringen

Im Folgenden zeigen wir Ihnen eine weitere Formel, mit der Sie nur Zahlen aus einer beliebigen Position einer Excel-Zelle extrahieren können. Obwohl sie recht komplex erscheinen mag, werden wir die gesamte Formel aufschlüsseln und versuchen, alle kompakten Funktionen einfach zu erklären. Außerdem werden wir die IF , LARGE , INDEX , SUMPRODUCT und ISNUMMER Funktionen in dieser Formel.

  • Geben Sie zunächst diese Formel in die Zelle C5 Sie müssen nur die Zellreferenz auf der Grundlage Ihrer eigenen Zelle in der Tabelle ersetzen, und dann erhalten Sie durch die Einbettung dieser Formel sofort das erwartete Ergebnis. Und diese Formel funktioniert perfekt in jeder Excel-Version.

=IF(SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&B5, LARGE(INDEX(ISNUMBER(--MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")

  • Danach müssen Sie die Taste Eingabe erst, nachdem Sie die gesamte Formel eingegeben haben, und Sie sind fertig.

🔎 Formel Aufschlüsselung

Bevor wir mit der Aufschlüsselung dieser massiven & kompakten Formel beginnen, können wir sie in einige Teile aufteilen wie

=IF(A>0, SUMPRODUCT(B 1 *C 1 , B 2 *C 2 , ..........B n C n ),"")

Diese Syntax bedeutet, wenn A größer als 0 ist, dann sind alle Produkte von B n und C n ergibt das Endergebnis. Und wenn A nicht größer als 0 ist, wird das Ergebnis als leere Zelle zurückgegeben.

  • A = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""
  • B = MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)
  • C = 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),""

Aufschlüsselung von Teil A = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""

SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "")

  • Die UNTERSTÜTZUNG Funktion findet alle Ziffern (0-9) nacheinander im Text 19 DDX2MN und ersetzt diese Ziffern durch eine leere Zeichenfolge an den Stellen der Ziffern.
  • Die sich daraus ergebenden Werte in einem Array sind also {"19 DDX2MN", "9 DDX2MN", "19 DDXMN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "1 DDX2MN"}.

LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))

  • Die LEN Funktion zählt nun die Anzahl der Zeichen in allen Zeichenkettenwerten, die im vorherigen Abschnitt ermittelt wurden. Diese Funktion gibt also Folgendes zurück: {9,8,8,9,9,9,9,9,9,8}.

LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))

  • In diesem Teil der Formel wird nun eine Anzahl von Zeichen in der Zelle B5 subtrahiert alle im vorangegangenen Abschnitt gefundenen Zahlen. Die resultierenden Werte sind dann {0,1,1,0,0,0,0,0,0,1}.

SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "")))

  • Mit Hilfe des SUMME werden die Werte in dem im letzten Abschnitt gefundenen Array zu 3 addiert (0+1+1+0+0+0+0+0+1).
  • Nach dem ersten Teil unserer Formel bedeutet dies, A>0 (3>0) Jetzt kommen wir zum nächsten Teil der Aufschlüsselung.

Aufschlüsselung von Teil B = MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)

INDIRECT("$1:$"&LEN(B5))

  • Die INDIRECT Funktion speichert die Zeichenkettenwerte als Verweis auf das Array. Innerhalb der Klammern wird das kaufmännische Und (&) wird die Anzahl der in der Zelle gefundenen Zeichen zusammengefügt B5 mit der Syntax "Range of cells", d.h. von 1 bis zur Anzahl der definierten Zeichen wird jedes als Array-Referenz gespeichert.

ROW(INDIRECT("$1:$"&LEN(B5)))

  • Nun, diese ROW Funktion werden alle Zahlen aus dem Array und die daraus resultierenden Werte für die Zelle B5 wird - {1;2;3;4;5;6;7;8;9}.

MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1)

  • In diesem Teil der Formel wird die MID werden alle Zeichen aus der Zelle B5 basierend auf allen Positionen, die im vorherigen Abschnitt als Zahlen gefunden wurden. Die extrahierten Werte werden also nach diesem Teil gefunden - {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"}.

ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))

  • Als ISNUMMER ist eine logische Funktion, die einzeln feststellt, ob es sich bei den im vorangegangenen Abschnitt gefundenen Werten um Zahlenketten handelt oder nicht. Wenn ja, gibt sie als WAHR , andernfalls wird es angezeigt als FALSCH .
  • In unserem Fall lautet das Ergebnis also: {TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}.

INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0)

  • In der obigen Funktion ist ein doppelter Bindestrich, bekannt als Doppelt unär Es wird verwendet, um alle logischen Werte in Zahlenketten zu konvertieren. 1(WAHR) oder 0(FALSE) Nun, die INDEX Funktion wird dieses Ergebnis als {1;1;0;0;0;0;1;0;0} zurückgeben.
  • Anschließend werden die sich ergebenden Werte mit den Werten aus der Datenbank multipliziert. ROW Funktion innerhalb des Arrays und das Ergebnis wird sein: {1;2;0;0;0;0;7;0;0}.

LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))

  • Die LARGE Funktion ordnet nun die größten Werte aus dem Array entsprechend den Positionen an, die auf den Zahlen in der ROW Funktionen. & unsere resultierenden Werte für diesen Abschnitt der Formel sind: {7;2;1;0;0;0;0;0;0}.

MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)

  • Dieser Teil der Funktion verkettet nun 0 mit den Texten in der Zelle B5 Dann fügt es hinzu 1 einzeln mit allen im letzten Abschnitt gefundenen Zahlen und zeigen die Zeichen aus B5 Zelle auf der Grundlage der festgelegten Nummernpositionen.
  • Das Ergebnis dieses Abschnitts lautet also: {"2″; "9″; "1″; "0″; "0″; "0″; "0″; "0″; "0″; "0"}.

Aufschlüsselung von Teil C = (10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")

  • In diesem Teil werden die Potenzen von 10 & ermittelt und im Array gespeichert. Die Ziffern der Potenzen sind die Zahlen, die aus der ROW Funktion zuvor.
  • Dieser Teil der Formel liefert die Werte {1;10;100;1000;10000;100000;1000000;10000000;100000000}.

Multiplikation von B n und C n

  • Nun werden die resultierenden Werte aus den letzten beiden großen Aufschlüsselungen von B und C innerhalb des Feldes multipliziert. Die Produkte aus den Multiplikationen sind dann {2;90;100;0;0;0;0;0;0}.
  • Und schließlich, die SUMPRODUCT Funktion summiert diese Werte im Array, so dass das Endergebnis lautet 192 (2+90+100+0+0+0+0+0+0) das sind die extrahierten Zahlen aus der Zelle B5 .

Lesen Sie mehr: Wie man Text und Zahlen in Excel trennt (4 einfache Möglichkeiten)

5. fünfstellige Zahlen aus einer Zeichenkette extrahieren

Wir werden eine weitere Formel verwenden, um fünfstellige Zahlen aus einem beliebigen Teil einer Zeichenfolge in Excel zu extrahieren. Wir verwenden die CONCAT und SEQUENCE Außerdem haben wir unseren Datensatz für diese Methode leicht verändert.

Schritte:

  • Wählen Sie zunächst den Zellbereich C5:C12 .
  • Zweitens: Geben Sie die folgende Formel ein.

=CONCAT(IFERROR(0+MID(B5,SEQUENCE(LEN(B5)),1),""))

  • Drücken Sie schließlich Strg+Eingabe .

🔎 Formel Aufschlüsselung

  • LEN(B5)
    • Leistung: 11 .
    • Diese Funktion gibt die Länge der Zeichenkette zurück.
  • SEQUENCE(11)
    • Output: {1;2;3;4;5;6;7;8;9;10;11} .
    • Diese Funktion gibt die ersten elf Zahlen zurück.
  • MID(B5,{1;2;3;4;5;6;7;8;9;10;11},1)
    • Ausgabe: {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"; "3″; "3″} .
    • Mit diesem Teil holen wir uns die einzelnen Zeichen aus der Zeichenkette.
  • 0+{"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"; "3″; "3″}
    • Ausgabe: {1;9;#WERT!;#WERT!;#WERT!;#WERT!;#WERT!;2;#WERT!;#WERT!;3;3} .
    • Wenn wir eine Null mit einer Zeichenkette hinzufügen, wird ein Fehler zurückgegeben.
  • IFERROR({1;9;#WERT!;#WERT!;#WERT!;#WERT!;2;#WERT!;#WERT!;3;3},"")
    • Ausgabe: {1;9;"";"";"";"";2;"";"";3;3} .
    • Wir erhalten für alle Fehlerwerte ein Leerzeichen.
  • CONCAT({1;9;"";"";"";"";2;"";"";3;3})
    • Leistung: 19233 .
    • Schließlich werden alle Werte addiert, um nur fünfstellige Zahlen zu erhalten.

6. mit Blitzauffüllung Zahlen innerhalb eines Bereichs extrahieren

Verwendung von die Blitz-Füllung ist einfacher und unkomplizierter als alle anderen oben genannten Methoden. Wir werden Zahlen von jeder beliebigen Position in den Textstrings extrahieren. Um diese Methode richtig auszuführen, müssen wir Excel helfen, das Muster der Zellwerte in einer Spalte oder Zeile zu finden, indem wir die Extraktion nur für die ersten beiden Werte durchführen.

Schritte:

  • Geben Sie die Zahlen zunächst manuell in die Zelle C5 .

  • Beginnen Sie dann mit der Eingabe der Zahlen aus der Zelle B6 zur Zelle C6 und Excel wird das Muster automatisch erkennen.
  • Drücken Sie schließlich Eingabe .

Anmerkungen: Diese Methode hat einige Nachteile, weshalb sie nicht für alle Fälle empfohlen wird, in denen Sie Zahlen aus Textstrings extrahieren müssen. Die Blitz-Füllung folgt in der Regel einem Muster aus den Zellen einer Spalte oder eines Bereichs. Daher müssen die ersten 2 oder 3 Extraktionen oder Berechnungen manuell durchgeführt werden, damit Excel das allgemeine Muster der resultierenden Werte aufnehmen kann. Aber manchmal folgt es nicht genau dem Muster, das wir brauchen, und folgt daher seinem eigenen Muster und liefert ein unpassendes Ergebnis.

Wenn wir z. B. zwei Nullen (00) aus den angegebenen Daten extrahieren müssen, wird nur eine Null angezeigt, nicht zwei. Wenn Sie Zahlen vom Anfang oder von der letzten Position einer Zelle extrahieren möchten, werden neben den Zahlen auch Textwerte extrahiert.

Lesen Sie mehr: Wie man Zahlen nach einem bestimmten Text in Excel extrahiert (2 geeignete Methoden)

7 VBA-Code anwenden, um nur Zahlen aus einer Excel-Zelle zu extrahieren

Wenn Sie daran interessiert sind, die Excel VBA-Makro nur Zahlen aus den Zellen extrahieren möchten, dann sollten Sie die folgenden Schritte befolgen. Wir zeigen Ihnen, wie Sie den Code in das Feld VBA-Modul In diesem Code wird der Benutzer aufgefordert, die Eingabe- und Ausgabezellenbereiche anzugeben.

Schritte:

  • Erstens: Drücken Sie ALT+F11 zum Öffnen des VBA Fenster.
  • Dann, vom einfügen. wählen Sie die Registerkarte Modul Es erscheint ein neues Modulfenster, in das Sie die Codes eingeben.

  • Drittens: Fügen Sie innerhalb Ihres Moduls nach dem Kopieren die folgenden Codes ein.
 Option Explicit Sub ExtractNumbersOnly() Dim CellValue As Range Dim InBx1 As Range Dim InBx2 As Range Dim NumChar As Integer Dim StartChar As Integer Dim XtrNum As String Dim DBxName1 As String Dim DBxName2 As String Dim Iteration As Integer DBxName1 = "Input Data Selection" DBxName2 = "Output Cell Selection" Set InBx1 = Application.InputBox("Input Range of Text Cells:", _ DBxName1, "", Type:=8)If TypeName(InBx1) = "Nothing" Then Exit Sub Set InBx2 = Application.InputBox("Select Output Cells:", _ DBxName2, "", Type:=8) If TypeName(InBx2) = "Nothing" Then Exit Sub Iteration = 0 XtrNum = "" For Each CellValue In InBx1 Iteration = Iteration + 1 NumChar = Len(CellValue) For StartChar = 1 To NumChar If IsNumeric(Mid(CellValue, StartChar, 1)) Then XtrNum = XtrNum & Mid(CellValue,StartZeichen, 1) End If Next StartZeichen InBx2.Item(Iteration) = XtrNum XtrNum = "" Next CellValue End Sub 

  • Drücken Sie anschließend F5 um den Code auszuführen. Ein Dialogfeld namens " Auswahl der Eingangsdaten " erscheint.
  • Markieren Sie dann alle Textzellen (d. h. B5:B12 ) und drücken Sie OK .

  • Danach erscheint ein weiteres Dialogfeld mit der Bezeichnung " Auswahl der Ausgangszelle "Es erscheint ein Fenster, in dem Sie eine bestimmte Zelle oder einen Bereich von Zellen auswählen müssen, um die Ausgabedaten oder -werte zu sehen.
  • Wählen Sie schließlich den Zellbereich C5:C12 und drücken Sie Eingabe .

  • Folglich werden Sie die extrahierten Zahlen aus den Texten auf einmal sehen. Damit beenden wir die sieben schnellen Methoden, um Zahlen nur aus Excel-Zellen zu extrahieren.

🔎 VBA-Code-Aufschlüsselung

Parameter deklarieren

 Option Explicit Sub ExtractNumbersOnly() Dim cellValue As Range Dim InBx1 As Range Dim InBx2 As Range Dim NumChar As Integer Dim StartChar As Integer Dim XtrNum As String Dim DBxName1 As String Dim DBxName2 As String Dim Iteration As Integer DBxName1 = "Eingangsdatenauswahl" DBxName2 = "Ausgangszellenauswahl" 
  • Hier in diesem Teil deklarieren wir zunächst alle unsere Parameter als Ganzzahlen, Zeichenketten oder Zellbereiche. Dann geben wir die Namen unserer Dialogfelder mit "Auswahl der Eingabedaten" und "Auswahl der Ausgangszelle" .

Definieren der Arten von Eingaben & Ausgaben für Dialogfelder

 Set InBx1 = Application.InputBox("Input Range of Text Cells:", _ DBxName1, "", Type:=8) If TypeName(InBx1) = "Nothing" Then Exit Sub Set InBx2 = Application.InputBox("Select Output Cells:", _ DBxName2, "", Type:=8) If TypeName(InBx2) = "Nothing" Then Exit Sub Iteration = 0 XtrNum = "" 
  • Jetzt definieren wir die Parameter und ihre Typen für die Dialogfelder. Hier bedeutet das Hinzufügen von Typ:=8, dass die Ein- und Ausgabedaten aus Referenzzellen oder einem Bereich von Zellen bestehen.
  • Wir legen auch fest, dass das Unterprogramm anhält, wenn keine Eingabedaten gefunden werden. Durch die Erwähnung dieses Makros bricht das Unterprogramm nicht wegen fehlender Daten ab, sondern es hört auf zu funktionieren.

Kombinieren der Funktionen innerhalb der Codeschleifen für Iterationen

 For Each cellValue In InBx1 Iteration = Iteration + 1 NumChar = Len(cellValue) For StartChar = 1 To NumChar If IsNumeric(Mid(cellValue, StartChar, 1)) Then XtrNum = XtrNum & Mid(cellValue, StartChar, 1) End If Next StartChar InBx2.Item(Iteration) = XtrNum XtrNum = "" Next cellValue End Sub 
  • Und schließlich ist dies der wichtigste Teil, in dem wir die Funktionen oder Formeln anwenden, die wir den Texten zuweisen müssen, um die resultierenden Werte aus den Zeichenketten zu ermitteln.
  • Einer der Hauptvorteile beim Codieren einer Funktion für Excel ist, dass es nicht notwendig ist, eine große Formel einzugeben, wie es bei früheren Methoden der Fall war, da VBA über integrierte Befehle zur Verwendung von For- oder While-Schleifen verfügt, in denen die Iteration für jedes einzelne Detail in einer Textzeichenfolge ohne Schwierigkeiten ausgeführt werden kann.

Lesen Sie mehr: Wie man in Excel VBA Zahlen von Text trennt (3 Methoden)

Schlussfolgerung

Wir haben Ihnen 7 einfache Methoden gezeigt, um nur Zahlen extrahieren aus einer Excel-Zelle zu extrahieren. Nur Zahlen aus einer Textzeichenfolge zu extrahieren, ist nicht so einfach, wie es scheint, denn es erfordert eine Kombination mehrerer Funktionen, was die endgültige Formel oder Syntax kompliziert macht. Aber wir hoffen, dass die Art und Weise, wie wir versucht haben, die Formeln zu veranschaulichen, indem wir die inneren Funktionen aufgeschlüsselt haben, Ihnen geholfen hat, die Syntax mit ein wenig Komfort und Leichtigkeit zu verstehen.

Wenn Sie weitere Funktionen oder Formeln finden, die wir hier hinzufügen sollten, dann lassen Sie es uns bitte durch Ihre wertvollen Kommentare wissen. Oder werfen Sie einen Blick auf unsere weiteren informativen und interessanten Artikel zu Excel-Funktionen auf dieser Website.

Hugh West ist ein äußerst erfahrener Excel-Trainer und -Analyst mit über 10 Jahren Erfahrung in der Branche. Er verfügt über einen Bachelor-Abschluss in Rechnungswesen und Finanzen sowie einen Master-Abschluss in Betriebswirtschaft. Hugh hat eine Leidenschaft für das Unterrichten und hat einen einzigartigen Lehransatz entwickelt, der leicht zu befolgen und zu verstehen ist. Seine Expertenkenntnisse in Excel haben Tausenden von Studenten und Berufstätigen auf der ganzen Welt geholfen, ihre Fähigkeiten zu verbessern und in ihrer Karriere herausragende Leistungen zu erbringen. Über seinen Blog teilt Hugh sein Wissen mit der Welt und bietet kostenlose Excel-Tutorials und Online-Schulungen an, um Einzelpersonen und Unternehmen dabei zu helfen, ihr volles Potenzial auszuschöpfen.