Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

große Zahlen in Worten ausdrücken

große Zahlen in Worten ausdrücken
11.01.2016 18:20:32
Christian
Hallo an euch alle,
erstmal ich benutze Excel in der Version 2016.
Habe mal eine Frage gibt es eine Formel, die sehr große beliebige Zahlen in Worte ausdrücken kann
also sowas ausgibt wie
1 Milliarde 234 Millionen 567 Tausend 890, so in etwa stelle ich mir die Ausgabe vor.
Jedoch gehen die Zahlen von ca. 50 Mio. bis hin zu ca. 200 Billiarden, keine Nachkommastellen.
Hat da jemand eine Lösung für mich?
Vielen Dank
Christian

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: große Zahlen in Worten ausdrücken
11.01.2016 18:24:22
Hajo_Zi
Halo Christian,
schaue doch mal bei Excelformel.de

AW: große Zahlen in Worten ausdrücken
11.01.2016 18:27:21
Christian
Hallo Hajo,
hatte bereits gesucht aber die größte Lösung war ein Makro das bis zu 1 Mrd. ging.
Wenn du eine Internetseite hast, di ich vlt. übersehen habe sag sie mir bitte.
Gruß
Christian

AW: große Zahlen in Worten ausdrücken
11.01.2016 18:34:57
Martin
Hallo Christian,
eine solche Formel bietet Excel nicht von Haus aus. Mit "UDF" (user defined function) kann eine entsprechende benutzerdefinierte Formel "nachgerüstet" werden. Der entsprechende VBA-Code muss in einem Modul hinterlegt werden, danach erhälst du (auch ohne VBA-Kenntnisse) z.B. mit der Formel "=BetragInWorten(200000000000000)" die Zahlen als Worte. Ich verwende folgenden VBA-Code:
' Original von Dieter Otter: http://www.tools4vb.de
' Erweitert von Robert Gamweger für Kommastellenausgabe
' Nochmals erweitert um den Parameter Stellen,
' damit die Anzahl der gewünschten Kommastellen
' bestimmt werden kann.
Public Function BetragInWorten(ByVal Betrag As Double, Optional Stellen As Byte = 0) As String
Dim sKoma As String     ' String nach komma
Dim sBetrag As String
Dim kBetrag As Single   ' Betrag hinter dem Komma
Dim i As Integer
Dim Gruppe As String
ReDim tmp1(4) As String
ReDim tmp2(4) As String
ReDim Grp(5) As String
kBetrag = Betrag - Fix(Betrag)
If kBetrag > 0 Or Stellen > 0 Then
sKoma = " Euro und "
sBetrag = Mid(kBetrag, 3)
i = Stellen - Len(sBetrag)
If i > 0 Then sBetrag = sBetrag & String(i, "0")
While Left(sBetrag, 1) = "0"
sKoma = sKoma & "null"
sBetrag = Mid(sBetrag, 2)
Wend
If sBetrag  "" Then
sKoma = sKoma & BetragInWorten(CLng(sBetrag))
End If
End If
Betrag = Fix(Betrag)  ' Zahl ohne Komma erstellen
If Betrag = 0 Then
BetragInWorten = "null" & sKoma
Else
tmp1(1) = "einebillion": tmp2(1) = "billionen"
tmp1(2) = "einemilliarde": tmp2(2) = "milliarden"
tmp1(3) = "einemillion": tmp2(3) = "millionen"
tmp1(4) = "eintausend": tmp2(4) = "tausend"
sBetrag = LTrim$(Str$(Betrag))
sBetrag = Left(sBetrag, 15)
sBetrag = String$(15 - Len(sBetrag), "0") + sBetrag
For i = 1 To 5
Gruppe = Mid$(sBetrag, (i - 1) * 3 + 1, 3)
If Gruppe  "000" Then
If i  5 Then
If Gruppe = "001" Then
Grp(i) = tmp1(i)
Else
Grp(i) = GetGruppe(Gruppe) + tmp2(i)
End If
Else
Grp(i) = GetGruppe(Gruppe)
End If
End If
Next i
BetragInWorten = Grp(1) + Grp(2) + Grp(3) + _
Grp(4) + Grp(5) & sKoma
End If
End Function
' Die nachfolgende Funktion wird von der Hauptfunktion aufgerufen
Private Function GetGruppe(ByVal Gruppe As String) As String
' Dreiergruppen in Worten zusammenfassen
Dim Hunderter As String
Dim Zehner As String
Dim Einer As String
' Hunderterstellen
If Val(Mid$(Gruppe, 1, 1)) > 0 Then
If Mid$(Gruppe, 1, 1) = "1" Then
Hunderter = "einhundert"
Else
Hunderter = Choose(Val(Mid$(Gruppe, 1, 1)) + 1, "null", _
"eins", "zwei", "drei", "vier", "fünf", "sechs", _
"sieben", "acht", "neun") + "hundert"
End If
End If
' Zehnerstellen
If Val(Right$(Gruppe, 2)) >= 10 And _
Val(Right$(Gruppe, 2))  1 Then
Zehner = Choose(Val(Mid$(Gruppe, 2, 1)) - 1, "zwanzig", _
"dreißig", "vierzig", "fünfzig", "sechzig", "siebzig", _
"achtzig", "neunzig")
End If
If Val(Mid$(Gruppe, 3, 1)) > 0 Then
' Einerstellen
If Zehner = "" Then 'vorher "eins"
Einer = Choose(Val(Mid$(Gruppe, 3, 1)) + 1, "null", _
"ein", "zwei", "drei", "vier", "fünf", "sechs", _
"sieben", "acht", "neun")
Else
If Mid$(Gruppe, 3, 1) = "1" Then
Einer = "einund"
Else
Einer = Choose(Val(Mid$(Gruppe, 3, 1)) + 1, "null", _
"eins", "zwei", "drei", "vier", "fünf", "sechs", _
"sieben", "acht", "neun") + "und"
End If
End If
End If
End If
GetGruppe = Hunderter + Einer + Zehner
End Function
Viele Grüße
Martin

Anzeige
excelformeln.de nicht
11.01.2016 18:55:10
WF
Hi,
bei uns ist bei 999.999.999 Sense.
WF

Sorry WF
11.01.2016 19:07:07
RPP63
Ja klar, da steigt auch meine Datei aus (die ich wohl noch nie ernsthaft genutzt habe).
@TE: im übrigen hat Excel eine Anzeige/Rechengenauigkeit von 15 Stellen,
spätestens bei 999.999.999.999.999 ist Schluss (danach in Zehnerpotenzen).
Ich lasse den Thread aber offen, vllt. findet ja jemand eine Lösung.
Gruß Ralf

Anzeige
AW: Sorry WF
11.01.2016 19:15:34
Christian
Hallo ihr beiden,
so exakt brauche ich die Ausgabe nicht, ist schon ok, wenn bei Zahlen größer 1 Billiarde auf 15 Stellen gerundet wird.
Gruß
Christian

Verstehst du evtl falsch (?), ...
11.01.2016 19:25:28
Luc:-?
…Christian;
maximal 15-16 Ziffern, nicht Dezimalstellen, also max 10^15-1 (knapp 1 Billiarde). Ab 10^15 wdn nach und nach die letzten GanzzahlStellen zu 0. Wenn das nicht sein soll, müsste die Zahl sinnvoll geteilt und das bei Umsetzung berücksichtigt wdn.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Verstehst du evtl falsch (?), ...
11.01.2016 19:31:10
Christian
Hallo Luc, in der Formel die diese ganz großen Zahlen berechnen steckt der Faktor 1 Mio und ein weiterer Faktor der maximal 3 Nachkommastellen hat, mit anderen Worten rein rechnerisch haben diese Zahlen sowieso Nullen am Ende.
Gruß
Christian

AW: Verstehst du evtl falsch (?), ...
11.01.2016 19:33:34
Christian
hier wird folgendes berechnet, BIP aus 2013 in Millionen * 1 Mio * Wechselkurs US-$ / € * Wechselkurs € / Landeswährung.

Na, denn iss ja jut... ;-) owT
11.01.2016 20:33:17
Luc:-?
:-?

AW: große Zahlen in Worten ausdrücken
11.01.2016 18:55:44
Christian
Hallo an euch alle,
erstmal danke.
Das Makro kommt dem noch am nächsten, es funktioniert zumindest bis in zahlen im billionen Bereich, bräuchte es aber bis 200 Brd.
Kann da bitte jemand nochmal nach schaun?
Viele Grü0e
Christian

Anzeige
AW: große Zahlen in Worten ausdrücken
11.01.2016 21:46:49
Daniel
Hi
probier mal diesen Code, solle mit beliebigen Ganzzahlen oder einem Text, der wie eine Ganzzahl mit Tausendertrennzeichen aussieht, zurecht kommen.
Function ZahlAlsText(wert) As String
Dim TeilZahl()  As String
Dim txt As String
Dim ZahlWort
Dim T As Long
Dim Z As Long
ZahlWort = Array(".", " Trillionen ", " Billionen ", " Milliarden ", " Millionen ", " Tausend ", _
"")
If VarType(wert)  0 Then
ZahlAlsText = Format(TeilZahl(T), "000") & ZahlWort(Z) & ZahlAlsText
End If
Else
ZahlAlsText = Format(TeilZahl(T), "0") & ZahlWort(Z) & ZahlAlsText
End If
If Z > 0 Then Z = Z - 1
Next
End Function
für noch grössere Zahlen als Trillionen einfach das Array um die folgenden Zahlenwörter erweiteren.
der Punkt muss der erste Eintrag sein, für den Fall das die Zahl grösser ist als das Array Zahlwörter enthält.
der Code ersetzt im Prinzip nur von hinten jeden Tausenderpunkt durch das dazugehörige Zahlwort.
besteht ein Tausenderblock nur aus "000", so wird dieser ausgelassen (auch zwischendrin)
Gruss Daniel
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige