Clever-Excel-Forum

Normale Version: Text in Zahl umwandeln?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich habe eine generell Frage und Suche nach der besten / einfachsten Lösung -

Und zwar möchte ich Textfelder in Zahlenfelder umwandeln mit einer Formel.

Und zwar sollen alle
1) Zeichen
2) Sonderzeichen (z.B. $, &, usw.)
3) Leerzeichen
3) Code (160)
ausgefiltert werden.

Am Ende soll dann nur mehr eine Zahle mit Komma übrigbleiben.

Experementiere mit verschachtelten WECHSEL-Funktionen - das macht mich aber irgendwie nicht glücklich.

Gibt es hier eine einfachere Lösung?
Rapid1898,

Schau dir mal die Nummern 100 bis 102 an.

Ansonsten werden dir bestimmt auch noch UDFs angeboten.
Hallo Rapid
Wenn das mit einer Formel gemäss dem Vorschlag shift-del geht, ist das gut. Sonst wäre für ein solches Problem auch VBA Regexp geeignet. Das braucht dann allerdings etwas Übung um den Suchstring zu formulieren. Wenn ich Dich richtig verstehe ist in einem String an beliebiger Stelle nach [mehrstellige Zahl][,][mehrstellige Zahl] zu suchen.
Gruss
Ein UDF

in B1:  =F_snb(A1)


Code:
Function F_snb(c00)
    For j = 1 To Len(c00)
       If Mid(c00, j, 1) Like "#" Then F_snb = F_snb & Mid(c00, j, 1)
    Next
End Function
Hallo snb,

Zitat:Am Ende soll dann nur mehr eine Zahle mit Komma übrigbleiben.

Bei mir passierte bei einem Test folgendes

Arbeitsblatt mit dem Namen 'Tabelle1'
 AB
1Test~125,2012520

ZelleFormel
B1=F_snb(A1)
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

und eigentlich sollte da, wenn ich das Ausgangsposting richtig interpretiere, die Zahl 125,20 stehen.
Das war nur als Ansatz gemeint und als Aufforderung selbst die Code zu ergänzen.
Hallo

ich habe auch ein Makro geschrieben, es gehört in ein normales Modul und durchsucht eine beliebige Spalte.
Zum Testen nahm ich Spalte "A", hier kann der Frager jede beliebige andere Spalte angeben. Aber bitte alle "A" aendern !!  
Das Ergebnis wird in die Spalte geschrieben die im Makro angegeben ist.  Frei waehlbar, zur Zeit "B"

Ich habe Zweifel das jeder Frager ein gutes Makro wie von snb selbst anpassen kann.  Das Problem ist m.E. gerade die Komma Auswertung.

mfg  Gast 123

Code:
'Eigenes Makro für beliebigen Bereich
Sub Zahlen_ausfiltern()
Dim Zahl As Double, AC As Range
Dim Zeichen As Variant, lz As Long

'LastZell suchen, hier Spalte "A"
lz = Cells(Rows.Count, "A").End(xlUp).Row

'Schleife füğr ganze Spalte bearbeiten  (hier "A")
For Each AC In Range("A2:A" & lz)
   Zahl = Empty: Zeichen = Empty
   'Schleife zum String zerlegen  (Zahl ausfiltern)
   For j = 1 To Len(AC)
      Zeichen = Mid(AC, j, 1)  'Zeichen zum audswerten
      If IsNumeric(Zeichen) Then Zahl = Zahl & Zeichen
      If Zeichen = "," And Len(Zahl) > 0 Then
         If IsNumeric(Mid(AC, j + 2, 1)) Then
            Zahl = Zahl & Mid(AC, j, 3): Exit For
         ElseIf IsNumeric(Mid(AC, j + 1, 1)) Then
            Zahl = Zahl & Mid(AC, j, 2): Exit For
         End If
      End If
   Next
   
   'Ergebnis in Spalte B anzeigen  (selbst festlegen)
   Cells(AC.Row, "B") = Zahl
Next AC
End Sub
Danke - das Makro hilft mir!
So kompliziert:


Code:
Function F_snb(c00)
    For j = 1 To Len(c00)
       If Mid(c00, j, 1) Like "#" Or Mid(c00, j, 1) = "," Then F_snb = F_snb & Mid(c00, j, 1)
    Next
End Function
Hier noch eine UDF Variante mit Regex:



Code:
Function extractnumbers(ByVal Zelle As String)
    Dim regex As Object
    
    Set regex = CreateObject("vbscript.regexp")
    With regex
        .Pattern = "^(.*?)(\d+[,\.\s]*\d+)(.*?)$"
        extractnumbers = .Replace(Zelle, "$2")
    End With

End Function

VG
Steffen
Seiten: 1 2