Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Text in Zahl umwandeln?
#1
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?
Antworten Top
#2
Rapid1898,

Schau dir mal die Nummern 100 bis 102 an.

Ansonsten werden dir bestimmt auch noch UDFs angeboten.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#3
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
Antworten Top
#4
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#5
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.
Gruß
Peter
Antworten Top
#6
Das war nur als Ansatz gemeint und als Aufforderung selbst die Code zu ergänzen.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#7
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
Antworten Top
#8
Danke - das Makro hilft mir!
Antworten Top
#9
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#10
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste