Konvertieren importierter Informationen in numerische Werte (Microsoft Excel)
Garrett fragte, ob es eine Möglichkeit gebe, Textdaten schnell in numerische Daten umzuwandeln. Er importiert eine Textdatei, die Leerzeichen an der Tausenderstelle (1 256) anstelle eines Kommas (1.256) verwendet.
Es gibt verschiedene Möglichkeiten, um dieses Problem anzugehen. Das erste ist, die Ursache des Problems zu verstehen. Die Textdatei wird wahrscheinlich auf einem System erstellt, das einem Metrikstandard folgt. Einige Länder verwenden nach dem metrischen Standard ein Leerzeichen für ein Tausendertrennzeichen anstelle eines Kommas. Auf diese Weise können Sie die Datei ordnungsgemäß in Excel importieren, wenn Sie Ihre regionalen Einstellungen in Windows ändern, bevor Sie Excel starten und den Import durchführen. Sie können die regionalen Einstellungen über die Systemsteuerung ändern.
Wenn Sie die regionalen Einstellungen Ihres Systems nicht ändern möchten, können Sie andere Ansätze wählen. Nachdem Excel die Informationen importiert hat, können Sie den Zellenbereich auswählen, der Zahlen enthält, und einfach suchen und ersetzen. Sie suchen nach einem einzelnen Leerzeichen und ersetzen es durch nichts. Dadurch wird der Speicherplatz vollständig entfernt, und Excel behandelt den Inhalt der Zelle als Zahl.
Falls gewünscht, können Sie auch eine Formel verwenden, um die importierten Daten zu ändern. Wenn sich die importierte Nummer (die ein Leerzeichen enthält) beispielsweise in Zelle A3 befindet, können Sie diese Formel verwenden, um das Leerzeichen zu entfernen:
=1*SUBSTITUTE(A3," ","")
Beachten Sie, dass zwischen dem ersten Satz von Anführungszeichen und zwischen dem zweiten Satz von Anführungszeichen ein Leerzeichen steht.
Wenn Sie eine ganze Reihe von Daten konvertieren müssen oder wenn Sie Text in die „Nur-Zahlen“ -Zellen eingestreut haben, können Sie sich für die Konvertierung für ein Makro entscheiden. Das folgende Makro bearbeitet eine Auswahl, die Sie vor dem Aufruf treffen. Außerdem wird überprüft, ob die Zelle nach dem Entfernen der Leerzeichen einen numerischen Wert enthält. Ist dies nicht der Fall, erfolgt keine Konvertierung.
Sub ClearSpacesIfNumeric() Dim c As Range 'Cell under examination Dim tmpText As String 'Cell contents without spaces Dim i As Integer 'Simple counter For Each c In Selection tmpText = "" 'Initialize 'Check each character to see if it's a space 'If it isn't, add it to tmpText For i = 1 To Len(c.Text) If Mid(c.Text, i, 1) <> " " Then tmpText = tmpText & Mid(c.Text, i, 1) End If Next i 'tmpText is now the cell contents without spaces 'If tmpText is a number, assign its value to 'the current cell If IsNumeric(tmpText) Then c.Value = tmpText End If Next c End Sub
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (12058) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: