Zahlen in Wörter umwandeln in Excel: Die ultimative Anleitung
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
- Öffnen Sie Ihre Excel-Arbeitsmappe.
- Drücken Sie die Tastenkombination
ALT+F11(auf manchen Laptops:ALT+Fn+F11). - Es öffnet sich das Fenster des VBA-Editors.
Schritt 2: Ein neues Modul einfügen
- Klicken Sie im oberen Menü auf Einfügen.
- Wählen Sie Modul aus.
- 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
- Schließen Sie das VBA-Fenster (rotes Kreuz oben rechts).
- Gehen Sie in Ihre Excel-Tabelle.
- Nehmen wir an, in Zelle A1 steht die Zahl
125. - Schreiben Sie in Zelle B1 folgende Formel:
=ZahlInWort(A1) - 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:
- Öffnen Sie ein leeres Word-Dokument.
- Drücken Sie
STRG+F9, um geschweifte Klammern für ein Feld einzufügen:{ }. - Schreiben Sie in diese Klammern folgende Syntax (Beispiel für die Zahl 450):
{ =450 \* CardText } - Drücken Sie
F9(oder Rechtsklick > Felder aktualisieren). - Word wandelt die Zahl sofort in Text um (vierhundertfünfzig).
- 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:
- Geben Sie in eine Zelle
=PYein und drücken Sie die Tab-Taste, um den Python-Modus zu starten. - Geben Sie folgenden Code ein:
from num2words import num2words num2words(xl("A1"), lang='de') - Drücken Sie
STRG+ENTER. - 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"