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

Forumthread: Zahlen aus Text filtern

Zahlen aus Text filtern
14.01.2013 15:59:17
Peter
Werte Excelprofis,
es wäre nett, wenn mir jemand helfen könnte.
Ich habe in der Spalte H etwa 5000 Datensätze zu stehen.
Sie sehen wie folgt aus:
Peter Maier110313Berlin
Paul Schulze140412Köln
Ich benötige aus diesen unterschiedlich langen Datensätzen
jeweils die beiden letzten Zahlen (lt. Beispiel also 13 und 12
- also die Jahreszahlen)
Kann ich die evtl. mit dem Autofilter filtern oder gibt es eine
kurze Formel dafür, die ich in Spalte I eintragen kann ?
Ein Makro wäre natürlich auch toll.
Besten Dank
Peter

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
.Pattern = "\d{2}(?=\D)"
14.01.2013 16:31:53
ransi
Hallo

oder gibt es eine
kurze Formel dafür, die ich in Spalte I eintragen kann ?

Mit Formeln geht bestimmt auch was, wird aber (wahrscheinlich) nicht einfach.
Ich bin in solchen Fällen eher für etwas VBA:
Diesen Code in ein Modul:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Dim Regex As Object

Public Function machs(zelle)
    If Regex Is Nothing Then Set Regex = CreateObject("Vbscript.Regexp")
    Dim Treffer As Object
    With Regex
        .Pattern = "\d{2}(?=\D)"
        .Global = True
        Set Treffer = .Execute(zelle.Text)
        machs = Treffer(Treffer.Count - 1)
    End With
End Function


Der Aufruf ist dann ganz einfach:
Tabelle1

 AB
1Peter Maier110313Berlin13
2Paul Schulze140412Köln12

Formeln der Tabelle
ZelleFormel
B1=machs(A1)
B2=machs(A2)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
ransi

Anzeige
AW: .Pattern = "\d{2}(?=\D)"
14.01.2013 16:40:13
Matze
Hallo Peter,
hier mit Formel in der Spalte I "Die Formel mit Strg+Shift+Enter" abschließen
=TEIL(LINKS(H1;MAX(ISTZAHL(TEIL(H1;SPALTE(1:1);1)*1)*SPALTE(1:1)));VERGLEICH(1;ISTZAHL(TEIL(H1&0; SPALTE(1:1);1)*1)*1;0);LÄNGE(H1))
Dein Ergebnis in Spalte J1 =Rest(I1;2)
Matze
Abstammung der Formel:
http://www.excelformeln.de/formeln.html?welcher=102

Anzeige
AW: Zahlen aus Text filtern
14.01.2013 16:37:14
Daniel
HI
als Formel könnte folgendes funktioneren:
=1*TEIL(H1;MAX(WENN(ISTZAHL(WERT(TEIL(H1;SPALTE(A1:Z1);1)));SPALTE(A1:Z1);0))-1;2) die Formel ist eine Matrixformel, dh du musst die Eingabe IMMER mit STRG+SHIFT+ENTER abschließen.
der Zellbezug in der SPALTE-Funktion (A1:Z1) muss mindestesn soviel Spalten umfassen, wie der längste Eintrag in Spalte H Zeichen hat (hier im Beispiel also für 26 Zeichen, bei 50 Zeichen dann A1:AX1)
Der Zellbereich kann grösser sein als benötigt, allerdings steigt mit der Grösse auch die Rechenzeit.
gruß Daniel

Anzeige
AW: Zahlen aus Text filtern
14.01.2013 16:37:53
Peter
Hallo Ransi,
recht herzlichen Dank für die ausführliche und schnnelle Antwort.
Gruss aus Berlin
Peter

AW: Zahlen aus Text filtern
14.01.2013 16:51:53
Peter
Hallo Daniel und Matze,
habt auch vielen Dank für Eure Mühe.
Gruss Peter

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zahlen aus Text filtern in Excel


Schritt-für-Schritt-Anleitung

Um Zahlen aus Text in Excel zu filtern, kannst du verschiedene Methoden anwenden. Hier sind die Schritte, die du befolgen kannst:

  1. Verwende die VBA-Methode:

    • Öffne den Visual Basic Editor (Alt + F11).
    • Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > "Einfügen" > "Modul").
    • Kopiere den folgenden VBA-Code in das Modul:
    Option Explicit
    Dim Regex As Object
    
    Public Function machs(zelle As Range)
       If Regex Is Nothing Then Set Regex = CreateObject("Vbscript.Regexp")
       Dim Treffer As Object
       With Regex
           .Pattern = "\d{2}(?=\D)"
           .Global = True
           Set Treffer = .Execute(zelle.Text)
           machs = Treffer(Treffer.Count - 1)
       End With
    End Function
    • Schließe den Editor und gehe zurück zu Excel.
    • Verwende die Funktion in einer Zelle, z.B. =machs(A1).
  2. Verwende eine Formel:

    • In Spalte I kannst du die folgende Formel verwenden, um die letzte Zahl zu extrahieren:
    =TEIL(LINKS(H1;MAX(ISTZAHL(TEIL(H1;SPALTE(1:1);1)*1)*SPALTE(1:1)));VERGLEICH(1;ISTZAHL(TEIL(H1&0; SPALTE(1:1);1)*1)*1;0);LÄNGE(H1))
    • Drücke Strg + Shift + Enter, um die Formel als Matrixformel einzugeben.

Häufige Fehler und Lösungen

  • Formel funktioniert nicht: Stelle sicher, dass du die Formel als Matrixformel mit Strg + Shift + Enter eingibst.
  • VBA funktioniert nicht: Überprüfe, ob Makros in Excel aktiviert sind. Gehe zu "Datei" > "Optionen" > "Trust Center" > "Einstellungen für das Trust Center" > "Makroeinstellungen".
  • Falsche Ergebnisse: Achte darauf, dass der Zellbezug in der SPALTE-Funktion ausreichend ist, um alle Zeichen im Text abzudecken.

Alternative Methoden

Neben den oben genannten Methoden kannst du auch den Textfilter in Excel verwenden:

  1. Wähle die Daten in Spalte H aus.
  2. Gehe zu "Daten" > "Filter".
  3. Verwende die Filteroptionen, um nur die gewünschten Einträge anzuzeigen.

Diese Methode eignet sich vor allem, wenn du nur die Anzeige der Daten ändern möchtest, jedoch keine neuen Werte generieren möchtest.


Praktische Beispiele

Nehmen wir an, in Spalte H stehen folgende Daten:

  • Peter Maier110313Berlin
  • Paul Schulze140412Köln

Um die Jahreszahlen zu extrahieren, kannst du die oben genannte Formel in Spalte I verwenden. Das Ergebnis für Peter Maier wäre 13 und für Paul Schulze 12.


Tipps für Profis

  • Experimentiere mit den REGEX-Mustern in VBA, um spezifischere Anforderungen zu erfüllen.
  • Verwende Datenvalidierung und Bedingte Formatierung, um die Daten visuell ansprechend zu gestalten und Fehler zu vermeiden.
  • Für große Datenmengen kann es sinnvoll sein, die VBA-Methode zu nutzen, da sie effizienter ist als komplexe Formeln.

FAQ: Häufige Fragen

1. Welche Excel-Version benötige ich für die VBA-Methode?
Die VBA-Methode funktioniert in Excel 2010 und späteren Versionen.

2. Kann ich auch mehrere Zahlen aus dem Text extrahieren?
Ja, du kannst die REGEX-Muster anpassen, um mehrere Zahlen zu extrahieren, indem du die Logik im VBA-Code oder der Formel entsprechend änderst.

3. Welche Alternativen gibt es zur VBA-Methode?
Du kannst auch komplexe Formeln oder Power Query verwenden, um Zahlen aus Text zu filtern, wenn du keine VBA-Programmierung verwenden möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige