Excel Wort Als Zahl Rechnen

Excel Wort-zu-Zahl Rechner

Konvertieren Sie Textzahlen in Excel automatisch in echte numerische Werte mit diesem präzisen Rechner. Ideal für Finanzanalysen, Datenbereinigung und professionelle Berichte.

Konvertierter numerischer Wert:
Excel-Formel (für direkte Verwendung):
Wortlänge Analyse:

Ultimativer Leitfaden: Excel Wort-zu-Zahl Konvertierung für Profis

Die Konvertierung von Textzahlen (wie “einhundertfünfundzwanzig”) in numerische Werte ist eine häufige Herausforderung in Excel, besonders bei der Datenbereinigung oder der Verarbeitung von Benutzereingaben. Dieser Leitfaden erklärt Ihnen schrittweise, wie Sie diese Aufgabe meistern – von einfachen Formeln bis zu komplexen VBA-Lösungen.

1. Grundlagen: Warum Excel Textzahlen nicht automatisch erkennt

Excel speichert Zahlen und Text unterschiedlich:

  • Zahlen werden als numerische Werte gespeichert (z.B. 123 für “123”)
  • Textzahlen werden als Zeichenketten behandelt (z.B. “einhundertfünfundzwanzig” bleibt Text)
  • Excel kann nicht automatisch zwischen “123” (Text) und 123 (Zahl) unterscheiden
Offizielle Microsoft-Dokumentation:
https://support.microsoft.com/…/text-txt-or-csv-files

Microsoft erklärt hier die Unterschiede zwischen Text- und Zahlendaten in Excel-Importen.

2. Manuelle Methoden zur Konvertierung

2.1 Die WERT-Funktion (für einfache Fälle)

Die WERT()-Funktion konvertiert Text, der wie eine Zahl aussieht, in einen numerischen Wert:

=WERT("123")  // Ergibt: 123
=WERT("1.234,56")  // Ergibt: 1234,56 (abhängig von lokaleinstellungen)
            

Einschränkung: Funktioniert nicht mit ausgeschriebenen Zahlen wie “einhundertfünfundzwanzig”.

2.2 Text in Spalten (für strukturierte Daten)

  1. Markieren Sie die Zellen mit Textzahlen
  2. Gehen Sie zu Daten → Text in Spalten
  3. Wählen Sie “Getrennt” und dann “Fertig stellen”
  4. Excel konvertiert automatisch erkennbare Zahlen

3. Fortgeschrittene Techniken mit VBA

Für ausgeschriebene Zahlen (z.B. “dreihundert”) benötigen Sie eine benutzerdefinierte Funktion:

Function TextToNumberGerman(ByVal txt As String) As Double
    Dim GermanNumbers As Object, parts As Variant
    Dim result As Double, i As Integer
    Dim tempNum As Double, tempWord As String

    Set GermanNumbers = CreateObject("Scripting.Dictionary")
    ' Grundzahlen
    GermanNumbers.Add "null", 0
    GermanNumbers.Add "eins", 1: GermanNumbers.Add "ein", 1
    GermanNumbers.Add "zwei", 2: GermanNumbers.Add "zwo", 2
    GermanNumbers.Add "drei", 3
    GermanNumbers.Add "vier", 4
    GermanNumbers.Add "fünf", 5: GermanNumbers.Add "fuenf", 5
    GermanNumbers.Add "sechs", 6
    GermanNumbers.Add "sieben", 7
    GermanNumbers.Add "acht", 8
    GermanNumbers.Add "neun", 9
    ' Zehner
    GermanNumbers.Add "zehn", 10
    GermanNumbers.Add "elf", 11
    GermanNumbers.Add "zwölf", 12: GermanNumbers.Add "zwoelf", 12
    GermanNumbers.Add "dreizehn", 13
    GermanNumbers.Add "vierzehn", 14
    GermanNumbers.Add "fünfzehn", 15: GermanNumbers.Add "fuenfzehn", 15
    GermanNumbers.Add "sechzehn", 16
    GermanNumbers.Add "siebzehn", 17
    GermanNumbers.Add "achtzehn", 18
    GermanNumbers.Add "neunzehn", 19
    ' Zwanziger
    GermanNumbers.Add "zwanzig", 20
    GermanNumbers.Add "dreißig", 30: GermanNumbers.Add "dreissig", 30
    GermanNumbers.Add "vierzig", 40
    GermanNumbers.Add "fünfzig", 50: GermanNumbers.Add "fuenfzig", 50
    GermanNumbers.Add "sechzig", 60
    GermanNumbers.Add "siebzig", 70
    GermanNumbers.Add "achtzig", 80
    GermanNumbers.Add "neunzig", 90
    ' Höhere Einheiten
    GermanNumbers.Add "hundert", 100
    GermanNumbers.Add "tausend", 1000
    GermanNumbers.Add "million", 1000000
    GermanNumbers.Add "milliarde", 1000000000
    GermanNumbers.Add "billion", 1000000000000

    ' Text bereinigen
    txt = LCase(Replace(Replace(Replace(txt, " ", ""), "-", ""), "und", ""))

    ' Sonderfall: "eine" am Anfang (z.B. "eine million")
    If Left(txt, 4) = "eine" Then
        txt = "1" & Mid(txt, 5)
    End If

    ' In Teile zerlegen (für zusammengesetzte Zahlen)
    parts = Split(txt, "und")

    For i = LBound(parts) To UBound(parts)
        If GermanNumbers.exists(parts(i)) Then
            tempNum = GermanNumbers(parts(i))
        Else
            ' Komplexere Zahlen analysieren
            If InStr(parts(i), "hundert") > 0 Then
                tempWord = Replace(parts(i), "hundert", "")
                If GermanNumbers.exists(tempWord) Then
                    tempNum = GermanNumbers(tempWord) * 100
                Else
                    tempNum = 100
                End If
            ElseIf InStr(parts(i), "tausend") > 0 Then
                tempWord = Replace(parts(i), "tausend", "")
                If GermanNumbers.exists(tempWord) Then
                    tempNum = GermanNumbers(tempWord) * 1000
                Else
                    tempNum = 1000
                End If
                ' Weitere Einheiten hier ergänzen...
            End If
        End If
        result = result + tempNum
    Next i

    TextToNumberGerman = result
End Function
            

Anwendung: Fügen Sie diesen Code in den VBA-Editor ein (ALT+F11), dann können Sie in Excel =TextToNumberGerman(A1) verwenden.

4. Vergleich der Methoden

Methode Komplexität Genauigkeit Geschwindigkeit Eignung für ausgeschriebene Zahlen
WERT()-Funktion Sehr einfach 100% (für numerischen Text) Sofort Nein
Text in Spalten Einfach 95% (abhängig von Datenformat) Schnell Nein
Suchen/Ersetzen Mittel 80% (manuelle Arbeit) Langsam Teilweise
VBA-Funktion Komplex 99% (mit gutem Code) Schnell Ja
Power Query Mittel 98% Mittel Ja (mit benutzerdefinierter Funktion)

5. Praktische Anwendungsfälle

Finanzberichte

Konvertierung von ausgeschriebenen Beträgen in Verträgen (“dreihunderttausend Euro”) für die weitere Berechnung.

Datenmigration

Bereinigung von Altdaten, wo Zahlen als Text gespeichert wurden (z.B. “1.234,56 DM”).

Umfragen

Verarbeitung von Freitext-Antworten mit Zahlenangaben (“etwa fünfzig Prozent”).

6. Häufige Fehler und Lösungen

Fehler Ursache Lösung
#WERT! Fehler Text enthält nicht-numerische Zeichen Daten mit SÄUBERN() und GLÄTTEN() bereinigen
Falsche Dezimaltrennung Systemeinstellungen (Komma vs. Punkt) Excel-Optionen → Erweitert → Bearbeitungsoptionen anpassen
Groß-/Kleinschreibung Probleme VBA-Funktion ist case-sensitive Eingabetext mit LCase() normalisieren
Unerwartete Ergebnisse bei “und” Deutsche Zahlenschreibweise (z.B. “einundzwanzig”) Sonderbehandlung für “und” in der Parsing-Logik

7. Performance-Optimierung für große Datensätze

Bei der Verarbeitung von mehr als 10.000 Zeilen:

  1. VBA optimieren:
    • ScreenUpdating deaktivieren: Application.ScreenUpdating = False
    • Berechnungen ausschalten: Application.Calculation = xlCalculationManual
    • Variablen richtig deklarieren (z.B. Dim i As Long statt Integer)
  2. Power Query nutzen: Für Datensätze über 100.000 Zeilen ist Power Query oft schneller als VBA
  3. Batch-Verarbeitung: Daten in Blöcke von 5.000 Zeilen aufteilen
  4. Formeloptimierung: Volatile Funktionen wie INDIREKT() vermeiden
Akademische Studie zu Datenkonvertierung:
https://www.nist.gov/publications/data-cleaning…

Das National Institute of Standards and Technology (NIST) untersucht in dieser Studie Methoden zur Datenbereinigung, einschließlich Text-zu-Zahl-Konvertierung.

8. Alternative Tools und Plugins

Für komplexe Anforderungen können diese Tools hilfreich sein:

  • Kutools for Excel: Enthält spezielle Funktionen für Text-zu-Zahl-Konvertierung (inkl. ausgeschriebener Zahlen)
  • Ablebits: Bietet erweiterte Datenbereinigungsfunktionen
  • Power BI: Für die Verarbeitung sehr großer Datensätze mit Textzahlen
  • Python mit pandas: Für die Vorverarbeitung von Daten vor dem Import in Excel

9. Zukunftstrends: KI in der Datenkonvertierung

Moderne KI-Tools wie:

  • Excel’s IDEAS: Beginnt, Muster in Textzahlen automatisch zu erkennen
  • Natural Language Processing (NLP): Kann komplexe Zahlenschreibweisen interpretieren (z.B. “etwa fünfzig bis sechzig”)
  • Machine Learning: Lernende Systeme, die sich an spezifische Zahlenschreibweisen anpassen

Diese Technologien werden die manuelle Konvertierung in den nächsten Jahren zunehmend überflüssig machen.

10. Fazit und Empfehlungen

Die Wahl der richtigen Methode hängt von Ihren spezifischen Anforderungen ab:

  • Einfache numerische Texte: WERT()-Funktion oder “Text in Spalten”
  • Ausschriebene Zahlen (Deutsch/Englisch): Benutzerdefinierte VBA-Funktion
  • Große Datensätze: Power Query oder optimiertes VBA
  • Wiederkehrende Aufgaben: Makro aufzeichnen oder Add-In erstellen

Für professionelle Anwendungen empfiehlt sich die Entwicklung einer umfassenden VBA-Lösung, die:

  1. Mehrere Sprachen unterstützt
  2. Fehlerbehandlung enthält
  3. Performance-optimiert ist
  4. Dokumentation und Beispiele enthält
Offizielle Excel-VBA-Dokumentation:
https://docs.microsoft.com/en-us/office/vba/api/overview/

Die umfassende Microsoft-Dokumentation für VBA-Entwicklung in Excel.

Leave a Reply

Your email address will not be published. Required fields are marked *