Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zahlen von Text trennen

Zahlen von Text trennen
Text
Hallo,
ich habe folgendes Problem:
ich habe eine Excel-Liste mit mehreren hundert Einträgen in Spalte A. Diese Einträge haben folgende Struktur:
Artikel_ Setkopf_anlegen_I8006024_IT_Jan
VAR ZHAW B8006015_BE
Artikel_ Setkom1_anlegen_F8006025_FR
Unterstriche sind nicht bei jedem Eintrag vorhanden.
Ich möchte bei jedem Eintrag die Zahl mit dem davor stehenden Buchstaben (also in Zeile1 z. bsp. I8006024) in eine eigene Spalte kopieren (z. bsp. in Spalte B). Die Anzahl der Zeichen von Links und von Rechts ist unterschiedlich. Im Archiv habe ich nachgesehen konnte aber nichts finden.
Kann mir hier jemand mit einer Formel helfen? Sollte es keine Formel geben, dann auch VBA.
Mit freundlichen Grüßen
Stefan
Anzeige
AW: Zahlen von Text trennen
04.02.2011 08:58:10
Text
Hallo Stefan,
mit Hilfzelle
Tabelle1
 ABF
8http://www.excelformeln.de/formeln.html?welcher=102
9VAR ZHAW B8006015_BE8006015B8006015

verbundene Zellen
A8:F8

verwendete Formeln
Zelle Formel Bereich
B9 {=TEIL(LINKS(A9;MAX(ISTZAHL(TEIL(A9;SPALTE(1:1);1)*1)*SPALTE(1:1)));VERGLEICH(1;ISTZAHL(TEIL(A9;SPALTE(1:1);1)*1)*1;0);LÄNGE(A9))} $B$9
F9 =TEIL(A9;FINDEN(B9;A9)-1;LÄNGE(B9)+1) 
{} Matrixformel mit Strg+Umschalt+Enter abschließen

Tabellendarstellung in Foren Version 5.37



Anzeige
Aufgabenstellung unklar
04.02.2011 09:09:33
Erich
Hi zusammen,
augenscheinlich ist Stefans Aufgabenstellung noch nicht klar - siehe Zeile 8:
 ABC
8Artikel_ Setkom1_anlegen_F8006025_FR1_anlegen_F8006025m1_anlegen_F8006025
9VAR ZHAW B8006015_BE8006015B8006015

Formeln der Tabelle
ZelleFormel
B8{=TEIL(LINKS(A8;MAX(ISTZAHL(TEIL(A8;SPALTE(2:2); 1)*1)*SPALTE(2:2))); VERGLEICH(1;ISTZAHL(TEIL(A8;SPALTE(2:2); 1)*1)*1;0); LÄNGE(A8))}
C8=TEIL(A8;FINDEN(B8;A8)-1;LÄNGE(B8)+1)
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen

Hier wird die 1. "1" hinter dem "m" gefunden. Dies ist eine Zahl mit einem Buchstaben davor.
Stefan, kannst du eine Regel formulieren, nach der nicht diese Fundstelle,
sondern die weiter hinten stehende 8 gefunden werden soll?
Möglicherweise soll die zu findende Zehl mindenstens 2 oder vielleicht 5 Stellen haben?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Aufgabenstellung unklar
04.02.2011 09:17:34
Stefan
Hallo Erich, Hallo Hajo,
die Zahl, die gefunden werden soll beginnt immer mit einer "8". Entschuldigung, das hatte ich bei meiner Aufgabenstellung nicht berücksichtigt.
Viele Grüße
Stefan
AW: Aufgabenstellung unklar
04.02.2011 09:31:46
Hajo_Zi
Hallo Stefan,
Tabelle1
 ABF
13Artikel_ Setkom1_anlegen_F8006025_FRF8006025_FRF8006025

verwendete Formeln
Zelle Formel Bereich
B13 =TEIL(A13;FINDEN(8;A13)-1;LÄNGE(A13)) 
F13 =TEIL(B13;FINDEN(B9;B13)-1;LÄNGE(B9)+1) 

Tabellendarstellung in Foren Version 5.37


Gruß Hajo
Anzeige
AW: Aufgabenstellung unklar
04.02.2011 09:58:30
Hajo_Zi
Hallo Stefan,
das war noch falsch.
Tabelle1
 ABF
14http://www.excelformeln.de/formeln.html?welcher=102
15Artikel_ Setkom1_anlegen_F8006025_FrtutuF8006025 

verbundene Zellen
A14:F14

verwendete Formeln
Zelle Formel Bereich
B15 {=LINKS(TEIL(A15;FINDEN(8;A15)-1;LÄNGE(A15));1)&TEIL(LINKS(TEIL(A15;FINDEN(8;A15)-1;LÄNGE(A15));MAX(ISTZAHL(TEIL(TEIL(A15;FINDEN(8;A15)-1;LÄNGE(A15));SPALTE(2:2);1)*1)*SPALTE(2:2)));VERGLEICH(1;ISTZAHL(TEIL(TEIL(A15;FINDEN(8;A15)-1;LÄNGE(A15));SPALTE(2:2);1)*1)*1;0);LÄNGE(TEIL(A15;FINDEN(8;A15)-1;LÄNGE(A15))))} $B$15
{} Matrixformel mit Strg+Umschalt+Enter abschließen

Tabellendarstellung in Foren Version 5.37


Ich bin davon ausgegangen das hinter der Zahl nicht noch eine Zahl kommt.
Gruß Hajo
Anzeige
AW: Aufgabenstellung unklar
04.02.2011 10:11:37
Stefan
Hallo,
eine Frage: Was hat es denn in der zweiten Formel F13 =TEIL(B13;FINDEN(B9;B13)-1;LÄNGE(B9)+1) mit "B9" für eine Bewandnis?
Grüße
Stefan
AW: Aufgabenstellung unklar
04.02.2011 10:13:28
Hajo_Zi
Hallo Stefan,
siehe Dir meinen letzten Beitrag an.
Gruß Hajo
Anzeige
AW: Aufgabenstellung unklar
04.02.2011 11:09:25
Stefan
Hallo,
okay, Vielen Dank für die schnelle Hilfe. Hat mir sehr weitergeholfen.
Viele Grüße
Stefan
AW: Zahlen von Text trennen
04.02.2011 09:13:38
Text
Hallo Hajo,
Vielen Dank für die schnelle Hilfe.
Bei den ersten beiden funktionieren die Formeln. Bei der dritten nicht. Gibt es hier noch eine Lösung?
Sollte es zuviel Aufwand für dich sein, dann ist es nicht schlimm. Mir ist bis hierhin auch schon sehr geholfen.
Artikel_ Setkopf_anlegen_I8006024_IT_Jan 8006024 I8006024
VAR ZHAW B8006015_BE 8006015 B8006015
Artikel_ Setkom1_anlegen_F8006025_FR 1_anlegen_F8006025 m1_anlegen_F8006025
Nochmals Vielen Dank
Stefan
Anzeige
mit Regenechse ?
04.02.2011 11:27:27
ransi
Hallo Stefan
Mit ein ganz wenig VBA geht das recht einfach.
Kopier diesen Code mal in ein Modul:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit


Public Function machs(Zelle As Range, welche_Stelle As Long)
    Dim Regex As Object
    Dim objM As Object
    machs = ""
    Set Regex = CreateObject("vbScript.Regexp")
    With Regex
        .Pattern = "[A-ZÄÖÜ]8[0-9]+"
        .Global = True
        Set objM = .Execute(Zelle.Text)
        If objM.Count >= welche_Stelle Then _
            machs = objM(welche_Stelle - 1).Value
    End With
End Function


Jetzt kennt dein Excel eine neue rattenscharfe Funktion.
=machs() ;-)
Die kannst du in deiner Tabelle jetzt aufrufen wie jede ander Funktion auch.
=machs() erwartet nur 2 Argumente:
Die Zelle die untersucht werden soll und den wievielten Treffer sie aus der Zelle extrahieren soll.
Tabelle1

 ABCDE
1Artikel_ Setkopf_anlegen_I8006024_IT_Jan 8006024 I8006024I8006024I8006024  
2VAR ZHAW B8006015_BE 8006015 B8006015B8006015B8006015  
3Artikel_ Setkom1_anlegen_F8006025_FR 1_anlegen_F8006025 m1_anlegen_F8006025F8006025F8006025F8006025 
4     

Formeln der Tabelle
ZelleFormel
B1=machs($A1;SPALTE(A1))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
ransi
Anzeige
AW: mit Regenechse ?
04.02.2011 11:43:36
Stefan
Hallo ransi,
ich habe es getestet und funktioniert hervorragend.
Herzlichen Dank noch mal auch an alle anderen, die mir hiermit wirklich sehr geholfen haben
Viele Grüße
Stefan
kleine Variation
04.02.2011 13:46:20
Erich
Hi Ransi,
bei "machs" verlangt das Muster, dass direkt hinter der 8 noch mindestens eine Ziffer steht.
War das vorausgesetzt?
Bei "machs2" braucht es nur eine 8, vor der ein Buchstabe steht:
 ABCD
1Artikel_ Setkom1_anlegen_F8006025_FR 1_anlem1_anlegen_XX8gen_F80060F8006025F80060 
2 F8006025X8F80060

Formeln der Tabelle
ZelleFormel
B1=machs($A$1;SPALTE(A1))
C1=machs($A$1;SPALTE(B1))
B2=machs2($A$1;SPALTE(A1))
C2=machs2($A$1;SPALTE(B1))

In machs2() ist das Muster vorgegeben mit
.Pattern = "[A-ZÄÖÜ]8[0-9]*"
statt
.Pattern = "[A-ZÄÖÜ]8[0-9]+" wie in machs(). Ansonsten ist das gleich Ransis Funktion.
Das macht hier sicher nicht viel aus - aber man kann daran vielleicht noch etwas über die Echse lernen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: kleine Variation
09.02.2011 12:21:15
Stefan
Hallo,
erst mal sorry für die verspätete Antwort. Beide Funktionen funktionieren hervorragend.
Vielen Dank
Stefan
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zahlen und Text in Excel Trennen


Schritt-für-Schritt-Anleitung

Um in Excel Zahlen von Text zu trennen, kannst du die folgenden Schritte befolgen:

  1. Vorbereitung der Daten: Stelle sicher, dass deine Daten in einer Spalte (z. B. Spalte A) stehen und dass die Zahlen und Buchstaben wie in deinem Beispiel strukturiert sind.

  2. Hilfsspalte einfügen: Füge eine neue Spalte (z. B. Spalte B) neben deinen Daten ein, wo die getrennten Zahlen erscheinen sollen.

  3. Formel eingeben: Verwende die folgende Formel in der Zelle B1 (oder der entsprechenden Zelle in der Hilfsspalte):

    =TEIL(A1;FINDEN("8";A1)-1;LÄNGE(A1))

    Diese Formel sucht nach der Zahl "8" und trennt den Text. Passe die Formel je nach Struktur deiner Daten an.

  4. Formel nach unten ziehen: Ziehe die rechte untere Ecke der Zelle B1 nach unten, um die Formel auf die anderen Zeilen anzuwenden.

  5. Ergebnisse überprüfen: Überprüfe die Ergebnisse in der Hilfsspalte, um sicherzustellen, dass die Zahlen korrekt getrennt wurden.


Häufige Fehler und Lösungen

  • Fehler: Formel gibt #WERT! zurück

    • Lösung: Überprüfe, ob die gesuchte Zahl (z. B. "8") tatsächlich in der Zelle vorhanden ist.
  • Fehler: Unerwartete Ergebnisse

    • Lösung: Stelle sicher, dass die Struktur der Daten in jeder Zeile gleich ist. Manchmal kann eine unerwartete Struktur zu falschen Ergebnissen führen.
  • Fehler: Die Formel funktioniert nicht für alle Zeilen

    • Lösung: Möglicherweise ist die gesuchte Zahl oder der Buchstabe in einer Zeile nicht vorhanden. Überprüfe die Daten sorgfältig.

Alternative Methoden

  1. VBA-Methode: Wenn du mehr Kontrolle benötigst oder die Formel nicht die gewünschten Ergebnisse liefert, kannst du VBA verwenden. Hier ist ein einfacher VBA-Code:

    Function machs(Zelle As Range, welche_Stelle As Long) As String
       Dim Regex As Object
       Dim objM As Object
       Set Regex = CreateObject("vbScript.Regexp")
       With Regex
           .Pattern = "[A-ZÄÖÜ]8[0-9]+"
           .Global = True
           Set objM = .Execute(Zelle.Text)
           If objM.Count >= welche_Stelle Then machs = objM(welche_Stelle - 1).Value
       End With
    End Function
    • Du kannst diese Funktion in deiner Tabelle verwenden, indem du =machs(A1;1) eingibst, um die erste gefundene Zahl zu erhalten.
  2. Text zu Spalten: Eine weitere Möglichkeit ist die Verwendung der Funktion "Text in Spalten" in Excel, um Daten zu trennen. Wähle die Spalte aus, gehe zu "Daten" und klicke auf "Text in Spalten". Wähle die Trennzeichen entsprechend deiner Datenstruktur aus.


Praktische Beispiele

  • Beispiel 1: Wenn du den Eintrag Artikel_ Setkopf_anlegen_I8006024_IT_Jan hast, wird die Formel =TEIL(A1;FINDEN("8";A1)-1;LÄNGE(A1)) den Wert I8006024 in Spalte B ausgeben.

  • Beispiel 2: Bei VAR ZHAW B8006015_BE wird die Formel ebenfalls die Zahl B8006015 korrekt extrahieren.

  • Beispiel 3: Für den Eintrag Artikel_ Setkom1_anlegen_F8006025_FR kannst du die angepasste Formel verwenden, um F8006025 zu erhalten.


Tipps für Profis

  • Verwendung von Matrixformeln: Nutze Matrixformeln, um mehrere Ergebnisse gleichzeitig zu extrahieren.
  • Regex in VBA: Wenn du mit komplexeren Mustern arbeitest, verwende reguläre Ausdrücke in VBA, um bessere Ergebnisse zu erzielen.
  • Datenvalidierung: Überprüfe deine Daten regelmäßig, um sicherzustellen, dass alle Eingaben konsistent sind, bevor du die Trennungen vornimmst.

FAQ: Häufige Fragen

1. Kann ich die Formel anpassen, um Zahlen zu finden, die nicht mit "8" beginnen? Ja, du kannst die Suchzahl in der Formel anpassen, z. B. FINDEN("9";A1).

2. Gibt es eine Möglichkeit, die Trennung automatisch für viele Zeilen anzuwenden? Ja, ziehe die Formel einfach nach unten in der Hilfsspalte, um sie auf alle relevanten Zeilen anzuwenden.

3. Wie kann ich sicherstellen, dass die Zahlen mit einem bestimmten Muster übereinstimmen? Verwende reguläre Ausdrücke in VBA, um spezifische Muster zu identifizieren und zu extrahieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige