Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1580to1584
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Nummer vierstellig extrahieren

Nummer vierstellig extrahieren
15.09.2017 08:41:07
Mike

Guten Morgen,
gerne würde ich aus einem (leider nicht 100% genormten) Textstring jeweils eine vierstellige Nummer auslesen. In vielen Fällen würde dies mit =rechts() gut funktionieren, jedoch eben nicht in allen.
Kd-Auftrags-Nr.: 7893
Kd-Auftrags-Nr. 4500
Auftrag 5673
Auftrag 8111 des Kunden
Auftrag 7'444
Auftrag 1432_
Wie kann generell eine vierstellige Nummer erkannt werden, ob nun am Schluss oder im Text? Die Schwierigkeit ist wohl zusätzlich die allfällige Tausendertrennung.
Besten Dank für Eure Hilfe, Gruss Mike

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "like" wäre zu schön
15.09.2017 08:49:58
Fennek
Hallo,
wenn es vier zusammenhängende Zahlen wären, würde eine Prüfung mit
like "####"
helfen.
Da aber auch Sonderzeichen dazwischen stehen können (vorletzte Zeile) wird es aufwändiger.
Es VOLLSTÄNDIGE Liste der möglichen Varianten sollte vorliegen.
mfg
AW: wenn nur max 4stell. Zahlen vorkommen ...
15.09.2017 08:59:55
...
Hallo Mike,
... dann in Deiner Excelversion z.B. als Matrixformel einzugeben so:
{=MAX(WENN(ISTZAHL(--TEIL(WECHSELN(A1;"'";"");ZEILE(A1:INDEX(A:A;LÄNGE(A1)+9));4));--TEIL(WECHSELN(A1;"'";"");ZEILE(A1:INDEX(A:A;LÄNGE(A1)+9));4)))}
Aber wie geschrieben, es dürfen z.B. keine Datumswerte etc. im Text vorkommen, dann müsste ich nochmal ändern wozu ich momentan keine Zeit mehr habe.
Gruß Werner
.. , - ...
Anzeige
AW: wenn nur max 4stell. Zahlen vorkommen ...
15.09.2017 09:29:19
Mike
.. besten Dank für den Vorschlag, den ich gerne ausprobiere,
Gruss Mike
AW: Nummer vierstellig extrahieren
15.09.2017 09:02:32
JoNNy
Moin,
also ne idee hätte ich ja:
einfach ne Schleife die jeden String einliest und komplett zerlegt in einzelne Zeichen und bei jedem Zeichen dann prüft: Zeichen = Zahl ? wenn ja kommt das in den Temp String und wenn der mit 4 Zeichen also dann Zahlen gefüllt ist dann gibt er den aus ETC. und geht in die nächste Zeile.
Gruß JoNNy
AW: Nummer vierstellig extrahieren
15.09.2017 09:03:45
Piet
Hallo Mike
am schnellsten und einfachsten geht das über ein Makro, da brauchst du nicht mit Formeln rumtricksen.
Den unteren Code in ein Modul eingeben, über Button oder Makro Dialog starten, das ist alles. Bitte noch anpassen!
Ich habe zum testen Spalte A genommen und das Ergebnis in Spalte B geschrieben. Sollten dein Text in einer anderen Spalte stehen musst du alle "A"s gegen eine andere Spalte austauschen. Das ist alles.
mfg Piet
Sub Makro1()
Dim AC As Range, lz As Long
Sheets("Tabelle1").Select
'LastZell in Spalte "A" ermitteln
lz = Cells(Rows.Count, "A").End(xlUp).Row
'Schleife für Bereich in der Text steht
For Each AC In Range("A3:A" & lz)
'Zahl am Ende oder in Mitte suchen
If IsNumeric(Trim(Right(AC, 5))) Then
AC.Offset(0, 1) = Trim(Right(AC, 5))
Else
'Schleife für Text in Mitte
For j = 1 To Len(AC)
If IsNumeric(Mid(AC, j, 1)) Then
AC.Offset(0, 1) = Trim(Mid(AC, j, 5))
Exit For
End If
Next j
End If
'Tausender Zeichen löschen
AC.Offset(0, 2).Replace " ", ""
AC.Offset(0, 2).Replace "'", ""
AC.Offset(0, 2).Replace "_", ""
Next AC
End Sub

Anzeige
AW: Upps - drei aus dem Kaninchenhut - Respekt
15.09.2017 09:16:26
Piet
Hallo Kollegen
als ich mir den Thread unter "Offen" ansah gab es noch keine Antwort! Jetzt wo ich auf Forumsliste ging um meinen letzten offenen Thread zu prüfen sehe ich drei Antworten, - wie aus dem Kaninchenhut. Repsekt .... -
Ich mache dann mal für unbestimmte Zeit Urlaub in Germany. So long ....
mfg Piet
AW: Upps - drei aus dem Kaninchenhut - Respekt
15.09.2017 09:27:35
Mike
.. ;-)
cool .. Nummer vierstellig extrahieren
15.09.2017 09:30:25
Mike
.. cool, auch dies werde ich auf mein Beispiel adaptieren, besten Dank.
Gruss
Mike
1,2 oder .. haben wir ja noch was einfachereres
15.09.2017 09:36:41
Mike
.. und noch der dritte super Vorschlag besten Dank. Ich werde auch den gerne implementieren.
Gruss Mike
AW: 1,2 oder auch vier?
15.09.2017 12:29:44
JoWE
Hallo Mike,
und noch eins oder zwei mehr:
Private Sub ziffern_extrahieren()
Dim ze As Long, zeichen As String
For ze = 1 To Cells(Rows.Count, 1).End(xlUp).Row '"1 to..." wenn Du in Zeile 1 anfängst
For zeichen = 1 To Len(Cells(ze, 1))
If IsNumeric(Mid(Cells(ze, 1), zeichen, 1)) Then
Cells(ze, 2) = (Cells(ze, 2) & Mid(Cells(ze, 1), zeichen, 1)) * 1
End If
Next
Next
End Sub
Natürlich könntest Du auch mit regulären Ausdrücken arbeiten.
Wäre bei größeren Datenmengen bestimmt au8ch schneller:

Public Function regExIt(strgInput As String, strgPattern As String) As String
Dim objRegExp As Object, objMatch As Object, objItem As Object
Set objRegExp = CreateObject("Vbscript.regexp")
objRegExp.Pattern = strgPattern
objRegExp.Global = True
Set objMatch = objRegExp.Execute(strgInput)
For Each objItem In objMatch
regExIt = regExIt & objItem.Value
Next objItem
Set objRegExp = Nothing
Set objMatch = Nothing
Set objItem = Nothing
End Function
Sub getNumbersonly()
Dim i As Long
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(i, 2) = regExIt(Cells(i, 1), "[0-9]+")
Next
End Sub
Gruß
Jochen
Anzeige
AW: da fehlt noch ...WECHSELN(A1;"'";"")... owT
15.09.2017 20:26:24
...
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige