Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zahlen aus einer Zeichenkette extrahieren

Zahlen aus einer Zeichenkette extrahieren
03.08.2013 14:11:04
uteh
Liebes Forum,
ich versuche, aus einer Zeichenkette wie z.B. 12abc5667xyz9 nur die Zahlen zu extrahieren. Irgendwie verzettele ich mich dabei mit den Formeln. Ich vermute sehr, dass ich es zu umständlich zu lösen versuche und bin daher über jeden Tipp sehr dankbar.
Viele Grüße und danke im Voraus,
Ute

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlen aus einer Zeichenkette extrahieren
03.08.2013 14:43:44
uteh
Hallo Boris,
danke! Also ist es doch ziemlich aufwändig ...
Viele Grüße,
Ute

Nee, nicht, wenn du die UDF MaskOn aus ...
03.08.2013 14:53:39
Luc:-?
…dem Herber-Archiv verwendest, Ute:
=MaskOn("12abc5667xyz9";"num") ⇒ 12 5667 9
Gruß Luc :-?

Anzeige
Hier schießt Du doch...
04.08.2013 10:21:30
{Boris}
Hi Luc,
...mit Kanonen auf Spatzen. Und einfach mal ein Tipp, weil Du Deine UDFs ja gerne ansprichst, jedoch immer wieder feststellst, dass die OPs sie nicht suchen bzw. möglicherweise auch nur nicht finden: Verlink sie doch einfach. Dafür muss man sie aber erstmal finden. Ich zumindest finde sie nicht (zumindest nicht auf Anhieb) - nur so ein Bruchstück: MaskOn
VG, Boris

Anzeige
Oha, da hat die reformierte Forumssoftware ...
04.08.2013 10:46:32
Luc:-?
…wohl nachträglich was zerhauen, denn das müsste die alte Erstversion sein. Die 2.Proz ist keine, sondern eine Einsprungmarke für einen UP-Aufruf. Aber das ist die älteste (muss ich wohl mal eine neuere Version einstellen!).
Ansonsten hatte ich hier kürzlich erst eine Linkliste eingestellt, was ich gelegentlich mache.
Wir sehen hier doch stets nur die Beiträge derjenigen, die entweder gar nicht recherchieren oder dabei nichts bzw nichts Passendes (zu) finden (meinen). Wer das Archiv auf CD kauft, dürfte aber von vornherein auf Recherche eingestellt sein, denn sonst wäre der Kauf ja sinnlos! Damit erfüllen solche Hinweise bestimmt doch noch (irgendwann) ihren Zweck, wenn viell auch nicht unmittelbar! ;-)
Gruß Luc :-?

Anzeige
Der Gelegenheitsfrager...
04.08.2013 10:57:13
{Boris}
Hi Luc,
...wird sich aber nicht diese Mühe machen bzw. schon gar nicht die CD kaufen.
Wenn ich in einem Word-Forum o.ä. ne Frage stelle (kommt so ca. 1 mal in 5 Jahren vor), dann hab ich ehrlich gesagt auch keinen Bock, lange rumzusuchen, sondern freu mich über ne stichhaltige Antwort ohne lange Suche. Frage-Antwort-Danke-Tschüss.
Was anderes ist es, wenn da von einem OP ständig Fragen kommen. Da ist dann offensichtlich mehr Bedarf vorhanden - und den kann man dann auch eher mit Archiv und / oder CD befriedigen.
VG, Boris

Anzeige
Sicher, aber wiederholst du dich gern ständig? owT
04.08.2013 13:37:46
Luc:-?
:-?

Waren halt 2 Threads - Punkt! ;-) oT
04.08.2013 15:39:02
{Boris}
...

Aufwändig?!
04.08.2013 10:03:19
{Boris}
Hi,
Formel mit Strg+C kopieren und mit Strg+V einsetzen - na ja, und dann noch Strg+Shift+Enter...
Das sind keine 5 Sekunden...
VG, Boris

Anzeige
AW: Zahlen aus einer Zeichenkette extrahieren
03.08.2013 18:19:38
KlausF
Hallo Ute,
nachfolgende Funktion in ein allgemeines Modul geben:
Function Ziffern(rng As Range) Dim intZ As Integer For intZ = 1 To Len(rng) Select Case Asc(Mid(rng, intZ, 1)) Case 48 To 57 Ziffern = Val(Ziffern & Mid(rng, intZ, 1)) End Select Next intZ End Function Aufruf in der Tabelle mit
=Ziffern(A1)
Gruß
Klaus

Anzeige
unklar
04.08.2013 09:27:32
ransi
Hallo Uteh
...12abc5667xyz9 nur die Zahlen zu extrahieren.
Wie soll denn das Ergebniss aussehen ?
Tabelle1

 ABCDE
112abc5667xyz912 5667 9121 
2  56672 
3  95 
4   6 
5   6 
6   7 
7   9 
8     


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Oder noch anders ?
ransi

Anzeige
code vergessen..
04.08.2013 10:08:01
ransi
Hallo
Tabelle1

 ABCDE
112abc5667xyz912 5667 9121 
2  56672 
3  95 
4   6 
5   6 
6   7 
7   9 
8     
9     
10     

Formeln der Tabelle
ZelleFormel
B1=nichtZahlenRaus(A1)
C1=extractZahlen($A$1;ZEILE(A1))
D1=extractEinzelZahlen($A$1;ZEILE(A1))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Dazu diese Codes in ein Modul:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Function nichtZahlenRaus(zelle, Optional Trenner = " ") As String
    Dim Regex As Object
    Set Regex = CreateObject("VbScript.Regexp")
    With Regex
        .Pattern = "\D+"
        .Global = True
        nichtZahlenRaus = .Replace(zelle.Text, Trenner)
    End With
End Function


Function extractZahlen(zelle, intI As Integer) As Long
    Dim Regex As Object
    Set Regex = CreateObject("VbScript.Regexp")
    With Regex
        .Pattern = "\d+"
        .Global = True
        extractZahlen = .Execute(zelle.Text)(intI - 1)
    End With
End Function


Function extractEinzelZahlen(zelle, intI As Integer) As Long
    Dim Regex As Object
    Set Regex = CreateObject("VbScript.Regexp")
    With Regex
        .Pattern = "\d"
        .Global = True
        extractEinzelZahlen = .Execute(zelle.Text)(intI - 1)
    End With
End Function


ransi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zahlen aus einer Zeichenkette extrahieren


Schritt-für-Schritt-Anleitung

Um aus einer Zeichenkette wie 12abc5667xyz9 nur die Zahlen zu extrahieren, kannst du verschiedene Methoden in Excel verwenden. Hier eine Schritt-für-Schritt-Anleitung, wie du dies mit einer Formel und VBA durchführen kannst:

  1. Excel Formel verwenden:

    • Öffne Excel und wähle eine Zelle aus, in die du die Formel eingeben möchtest.
    • Gib die folgende Formel ein, um die Ziffern aus der Zeichenkette zu extrahieren:
      =TEXTJOIN(" ", TRUE, FILTERXML("<t><s>" & SUBSTITUTE(A1, " ", "</s><s>") & "</s></t>", "//s[number(.)]"))
    • Ersetze A1 durch die Zelle, die die Zeichenkette enthält.
  2. VBA verwenden:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Erstelle ein neues Modul (Einfügen > Modul) und füge den folgenden Code ein:
      Function Ziffern(rng As Range) As String
       Dim intZ As Integer
       For intZ = 1 To Len(rng)
           If Mid(rng, intZ, 1) Like "#" Then
               Ziffern = Ziffern & Mid(rng, intZ, 1)
           End If
       Next intZ
      End Function
    • Schließe den VBA-Editor und gehe zurück zu Excel.
    • Verwende die Funktion in einer Zelle, z.B. =Ziffern(A1).

Häufige Fehler und Lösungen

  • Fehler: #VALUE!

    • Dieser Fehler tritt auf, wenn ein ungültiger Zellbezug in der Formel verwendet wird. Stelle sicher, dass du die richtige Zelle angibst.
  • Problem mit VBA:

    • Wenn der VBA-Code nicht funktioniert, überprüfe, ob Makros in deiner Excel-Datei aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und aktiviere die Makros.

Alternative Methoden

  • Power Query:

    1. Lade deine Daten in Power Query.
    2. Verwende die Funktion Text.Select um nur die Ziffern auszuwählen.
  • Textfunktionen:

    • Nutze LINKS, RECHTS und TEIL, um die Ziffern manuell aus der Zeichenkette zu extrahieren, was allerdings aufwändig sein kann.

Praktische Beispiele

  • Beispiel 1: In Zelle A1 steht 12abc5667xyz9, und du möchtest nur die Zahlen 12 5667 9 erhalten. Verwende die oben genannte Formel oder VBA-Funktion.

  • Beispiel 2: Wenn in Zelle B1 der Wert abc123def456 steht, kannst du die Funktion =Ziffern(B1) verwenden, um 123456 zu extrahieren.


Tipps für Profis

  • Verwende den Excel-Texteditor: Um große Datenmengen zu bearbeiten, kannst du den Texteditor verwenden, um die Zeichenfolgen zu bereinigen, bevor du sie in Excel importierst.
  • Automatisiere mit VBA: Wenn du regelmäßig Zahlen aus Zeichenketten extrahieren musst, erstelle eine benutzerdefinierte Funktion in VBA, um den Prozess zu automatisieren.

FAQ: Häufige Fragen

1. Kann ich Zahlen aus mehreren Zellen auf einmal extrahieren?
Ja, du kannst die Formel oder die VBA-Funktion auf einen Bereich anwenden, um die Zahlen aus mehreren Zellen zu extrahieren.

2. Funktioniert das auch in Excel Online?
Die oben genannten Methoden funktionieren in Excel Online, jedoch können VBA-Funktionen nicht verwendet werden, da sie nur in der Desktop-Version verfügbar sind.

3. Was ist der Unterschied zwischen FILTERXML und VBA?
FILTERXML ist eine Excel-Funktion, die XML-Daten verarbeitet, während VBA eine Programmiersprache ist, die dir mehr Flexibilität und Automatisierungsmöglichkeiten bietet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige