ich habe mir erlaubt mal eine VBA Lösung hochzuladen. War etwas knifflig, funktioniert aber.
Dem Makro ist es egal ob vor oder hinter der 7stelligen Zahl ein Text steht, sie wird als Zahl erkannt. Miir fiel dabei auf, das das Zahlenformat auf 7stellig ausgelegt ist. Bei kleineren Zahlen steht eine Null davor. Das war etwas knifflig, aber selbst das erkennt mein Makro.
Leider ene alte Excel2003 Datei, aber das Makro kannst du ja nach dem Test in deine Datei kopieren. Viel Spass beim Testen mit Originaldaten. Bin gespannt auf deine Rückmelldung.
Danke Boris! Wie bei deiner Formel zuvor ein perfektes Ergebnis und dazu auch noch ein ganzes Stück kürzer. In den nächsten Wochen werde ich eure Formeln mal einem Praxis-Stresstest unterziehen und ich hoffe, dass der/euer Aufwand mir die Arbeit erleichtern wird.
Gruß derkneifel
Folgende(r) 1 Nutzer sagt Danke an derkneifel für diesen Beitrag:1 Nutzer sagt Danke an derkneifel für diesen Beitrag 28 • {Boris}
11.02.2024, 13:19 (Dieser Beitrag wurde zuletzt bearbeitet: 11.02.2024, 13:22 von HKindler.)
Hi,
hier mal noch eine kleine VBA-Routine aus meinem Fundes. Sie sucht einfach die erste Zahl innerhalb eines Strings - egal wie lang diese ist. Optional kann man statt am Anfang des Strings auch irgendwo mittendrin mit der Suche nach der Zahl starten. Wenn nur siebenstellige Zahlen erlaubt sein sollen, könnte man die Routine noch ausbauen.
Code:
Function NumberFilter(ByVal strText As String, Optional ByVal Start As Integer = 1) As Double 'Extrahiert eine Zahl aus String ab Start Dim intCounter As Integer strText = Replace(strText, ",", ".") For intCounter = Start To Len(strText) If IsNumeric(Mid(strText, intCounter, 1)) Then 'hier geht die Zahl los If intCounter > 1 Then 'nicht beim ersten Buchstaben! If Mid(strText, intCounter - 1, 1) = "-" Then 'Prüfen ob davor ein Minus intCounter = intCounter - 1 'Zahl geht eins früher los End If End If NumberFilter = Val(Right(strText, Len(strText) - (intCounter - 1))) Exit Function End If Next intCounter End Function