Tutorial: Zahlen in englische Wörter umwandeln in Excel (SpellNumber)
Hier ist ein ausführliches Tutorial, wie du in Excel arabische Zahlen (z. B. 123) in englische Wörter (z. B. "One Hundred Twenty Three") umwandeln kannst.
Da Excel standardmäßig keine eingebaute Funktion dafür hat, nutzen wir den gängigsten Weg über ein kleines VBA-Makro (SpellNumber).
Excel bietet von Haus aus keine Funktion, um Zahlen direkt als geschriebenen Text (Zahlwörter) auszugeben. Mit Hilfe eines einfachen VBA-Skripts kannst du diese Funktion jedoch in wenigen Minuten selbst hinzufügen.
Schritt 1: Den Visual Basic Editor öffnen
- Öffne deine Excel-Arbeitsmappe.
- Drücke die Tastenkombination [Alt] + [F11]. Dadurch öffnet sich der Visual Basic Editor (VBA).
Schritt 2: Ein neues Modul erstellen
- Klicke im Menü oben auf Einfügen (Insert).
- Wähle den Punkt Modul aus. Ein leeres weißes Fenster erscheint.
Schritt 3: Den VBA-Code einfügen
Kopiere den folgenden Code (dies ist eine standardisierte Version der Microsoft-Hilfe) und füge ihn in das leere Modulfenster ein:
Function SpellNumber(ByVal MyNumber)
Dim Dollars, Cents, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "
' String-Repräsentation der Zahl
MyNumber = Trim(Str(MyNumber))
' Position der Dezimalstelle
DecimalPlace = InStr(MyNumber, ".")
' Wenn Cents vorhanden sind
If DecimalPlace > 0 Then
Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Select Case Dollars
Case ""
Dollars = "No Dollars"
Case "One"
Dollars = "One Dollar"
Case Else
Dollars = Dollars & " Dollars"
End Select
Select Case Cents
Case ""
Cents = " and No Cents"
Case "One"
Cents = " and One Cent"
Case Else
Cents = " and " & Cents & " Cents"
End Select
SpellNumber = Dollars & Cents
End Function
' Hilfsfunktion für Hunderter
Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
' Hunderterstelle
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
' Zehner- und Einerstelle
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
' Hilfsfunktion für Zehner
Function GetTens(TensText)
Dim Result As String
Result = "" ' Ergebnis löschen
If Val(Left(TensText, 1)) = 1 Then ' Wert zwischen 10 und 19
Select Case Val(TensText)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
End Select
Else ' Wert zwischen 20 und 99
Select Case Val(Left(TensText, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
Case Else
End Select
Result = Result & GetDigit _
(Right(TensText, 1)) ' Einerstelle abrufen
End If
GetTens = Result
End Function
' Hilfsfunktion für Einer
Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function
Schritt 4: Den Editor schließen
Du kannst das VBA-Fenster nun einfach schließen (Klick auf das X oben rechts). Du musst nichts extra speichern, solange du die Excel-Datei offen lässt.
Schritt 5: Die Funktion in Excel nutzen
Jetzt kannst du die neue Funktion wie eine ganz normale Excel-Formel verwenden.
- Schreibe eine Zahl in Zelle A1 (z. B.
145,50). - Schreibe in eine andere Zelle die Formel:
=SpellNumber(A1) - Drücke Enter. Excel gibt nun aus: "One Hundred Forty Five Dollars and Fifty Cents".
Schritt 6: Die Datei richtig speichern
Damit das Makro beim nächsten Mal noch funktioniert, musst du die Excel-Datei in einem speziellen Format speichern:
- Gehe auf Datei > Speichern unter.
- Wähle als Dateityp Excel-Arbeitsmappe mit Makros (.xlsm).
Tipps für Anpassungen:
- Währung ändern: Wenn du "Euro" statt "Dollars" möchtest, drücke nochmal
Alt + F11und nutze die Suchen-Ersetzen-Funktion (Strg + H), um im Code "Dollars" durch "Euro" und "Cents" durch "Cent" zu ersetzen. - Nur die Zahl ohne Währung: Wenn du nur das Zahlwort ohne "Dollars & Cents" möchtest, müsstest du die Zeilen im Code entfernen, die
Dollars = ...undCents = ...am Ende der Hauptfunktion definieren.
Viel Erfolg beim Umwandeln deiner Zahlen!