Zahlen in Wörter umwandeln in Excel: Die ultimative Anleitung

Melden

In Excel gibt es viele nützliche Funktionen, aber eine Standardformel wie =ZAHLINWORT() suchen Nutzer vergeblich. Das Ausschreiben von Beträgen wird jedoch häufig für Rechnungen, Quittungen, Verträge oder Schecks benötigt (z. B. „150“ wird zu „Einhundertfünfzig“).

Da Excel diese Funktion nicht von Haus aus mitbringt, ist der beste und flexibelste Weg die Erstellung einer benutzerdefinierten Funktion (UDF) über VBA (Visual Basic for Applications).

In dieser Schritt-für-Schritt-Anleitung erfahren Sie, wie Sie dies ohne Vorkenntnisse in wenigen Minuten einrichten.


Methode 1: Der beste Weg – Eigene Formel per VBA erstellen

Mit dieser Methode erstellen wir eine Formel namens =ZahlInWort(Zelle), die sich danach wie jede normale Excel-Formel (z. B. =SUMME()) verhält.

Schritt 1: Den VBA-Editor öffnen

  1. Öffnen Sie Ihre Excel-Arbeitsmappe.
  2. Drücken Sie die Tastenkombination ALT + F11 (auf manchen Laptops: ALT + Fn + F11).
  3. Es öffnet sich das Fenster des VBA-Editors.

Schritt 2: Ein neues Modul einfügen

  1. Klicken Sie im oberen Menü auf Einfügen.
  2. Wählen Sie Modul aus.
  3. Es öffnet sich ein großes, weißes Textfenster auf der rechten Seite.

Schritt 3: Den Code einfügen

Kopieren Sie den folgenden VBA-Code und fügen Sie ihn unverändert in das weiße Fenster ein:

Function ZahlInWort(ByVal Zahl As Double) As String
    Dim Einer As Variant, Zehner As Variant, Sonder As Variant
    Dim Ganzzahl As Long, Cent As Long
    Dim Text As String

    If Zahl = 0 Then
        ZahlInWort = "Null"
        Exit Function
    End If

    Einer = Array("", "ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun")
    Sonder = Array("zehn", "elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechzehn", "siebzehn", "achtzehn", "neunzehn")
    Zehner = Array("", "zehn", "zwanzig", "dreißig", "vierzig", "fünfzig", "sechzig", "siebzig", "achtzig", "neunzig")

    Ganzzahl = Fix(Zahl)
    Cent = Round((Zahl - Ganzzahl) * 100)

    ' Hunderter- und Tausenderlogik (vereinfacht für Zahlen bis 999)
    If Ganzzahl >= 100 Then
        Text = Einer(Ganzzahl \ 100) & "hundert"
        Ganzzahl = Ganzzahl Mod 100
    End If

    If Ganzzahl >= 20 Then
        If (Ganzzahl Mod 10) > 0 Then
            Text = Text & Einer(Ganzzahl Mod 10) & "und" & Zehner(Ganzzahl \ 10)
        Else
            Text = Text & Zehner(Ganzzahl \ 10)
        End If
    ElseIf Ganzzahl >= 10 Then
        Text = Text & Sonder(Ganzzahl - 10)
    ElseIf Ganzzahl > 0 Then
        If Text = "" And Ganzzahl = 1 Then
            Text = "eins"
        Else
            Text = Text & Einer(Ganzzahl)
        End If
    End If

    ' Großschreibung des ersten Buchstabens
    If Len(Text) > 0 Then
        Text = UCase(Left(Text, 1)) & Mid(Text, 2)
    End If

    ' Ausgabe inkl. Cent-Beträge, falls vorhanden
    If Cent > 0 Then
        ZahlInWort = Text & " Komma " & Cent & "/100"
    Else
        ZahlInWort = Text
    End If
End Function

Schritt 4: Editor schließen und Formel nutzen

  1. Schließen Sie das VBA-Fenster (rotes Kreuz oben rechts).
  2. Gehen Sie in Ihre Excel-Tabelle.
  3. Nehmen wir an, in Zelle A1 steht die Zahl 125.
  4. Schreiben Sie in Zelle B1 folgende Formel:
    =ZahlInWort(A1)
  5. Drücken Sie Enter. Das Ergebnis lautet: Einhundertfünfundzwanzig.

Wichtig: Datei richtig speichern!

Damit das Makro auch beim nächsten Öffnen der Datei funktioniert:

  • Klicken Sie auf Datei > Speichern unter.
  • Wählen Sie als Dateityp zwingend: *Excel-Arbeitsmappe mit Makros (.xlsm)**.

Methode 2: Schneller Trick ohne Makros (Über Microsoft Word)

Wenn Sie Makros in Ihrem Unternehmen nicht nutzen dürfen und nur eine Handvoll Zahlen einmalig ausschreiben müssen, hilft ein Trick über Microsoft Word:

  1. Öffnen Sie ein leeres Word-Dokument.
  2. Drücken Sie STRG + F9, um geschweifte Klammern für ein Feld einzufügen: { }.
  3. Schreiben Sie in diese Klammern folgende Syntax (Beispiel für die Zahl 450): { =450 \* CardText }
  4. Drücken Sie F9 (oder Rechtsklick > Felder aktualisieren).
  5. Word wandelt die Zahl sofort in Text um (vierhundertfünfzig).
  6. Kopieren Sie den Text zurück in Ihr Excel-Dokument.

(Hinweis: Word nutzt die Spracheinstellung des Dokuments für die Übersetzung).


Methode 3: Für Fortgeschrittene (Python in Excel)

Verfügt Ihre Excel-Version über die modernere Python-Integration, benötigen Sie kein VBA. Sie können das Python-Paket num2words nutzen:

  1. Geben Sie in eine Zelle =PY ein und drücken Sie die Tab-Taste, um den Python-Modus zu starten.
  2. Geben Sie folgenden Code ein:
    from num2words import num2words
    num2words(xl("A1"), lang='de')
  3. Drücken Sie STRG + ENTER.
  4. Python gibt die Zahl aus Zelle A1 direkt als deutsches Wort aus.

Häufige Fehler & Tipps

  • Fehler #NAME?: Excel erkennt die Formel nicht. Das passiert, wenn das VBA-Modul nicht korrekt gespeichert wurde oder Makros im Dokument deaktiviert sind.
  • Makrosicherheit: Wenn beim Öffnen der Datei eine gelbe Warnleiste erscheint, klicken Sie auf Inhalt aktivieren, da eigene Formeln sonst nicht berechnet werden.
  • Währungen (Euro/Cent): Wenn Sie Beträge für Rechnungen benötigen, können Sie die Formel einfach mit einem Kaufmanns-Und (&) ergänzen:
    =ZahlInWort(A1) & " Euro"
0