Excel: Zahlen in Text umwandeln?
Hi,
wie kann ich in Excel eine Zahl in einen Text umwandeln ohne das Format der Zelle zu ändern? Gibts da irgendeine Formel? Wenn ja bitte mit Syntax. Ich habs mit =Text() versucht, hab aber nicht das richtige Textformat gefunden.
4 Antworten
Das klappt leider alles nicht, die zahl ist inhalt einer Formel und steht nicht in irgend einer Zelle.
Formel geht nicht! Musst in Feld [C1] die Funktion "=FctZahl_In_Worten(B1)" durch "Funktion einfügen" verwenden!
Dein Beispiel: (von mir gerade ausprobiert, mit Gruß von K. Donaubauer
A = Name, B = Zahl, C = Zahl als Wort geschrieben
- Gehe in den VBA-Modus mit Tastenkombination [ALT+F11]
- links auf "Modul" klicken
- Code einfügen (rechts angezeigt)
- Folgenden Code ins Codefenster koppieren und einfügen:
'*********** CODE START *************Public Function FctZahl_In_Worten(Zahl As Double) 'wandelt Zahlen im Bereich 0-999.999.999 in Worte um 'von Karl Donaubauer Dim z As String, w As String Dim r As Integer, i As Integer z = Int(Zahl) If z = 0 Then FctZahl_In_Worten = "null": Exit Function For i = 6 To 0 Step -3 If Len(z) > i Then r = Right(Int(z / (10 ^ i)), 3) If r > 99 Then w = FctZif(1, Left(r, 1), w) & "hundert": r = Right(r, 2) If r > 19 Then w = FctZif(3, Right(r, 1), w): w = FctZif(4, Left(r, 1), w) If i = 0 And Right(z, 3) Like "00*" And r > 0 Then w = w & "und" If r < 10 Then w = FctZif(1, r, w) If r > 9 And r < 20 Then w = FctZif(2, Right(r, 1), w) If i = 6 And Len(z) = 7 And r = 1 Then w = "einemillion" If i = 6 And Right(Int(z / 10 ^ i), 3) > 1 Then w = w & "millionen" If i = 3 And Right(Int(z / 10 ^ i), 3) > 0 Then w = w & "tausend" If i = 0 And r = 1 Then w = w & "s" End If Next FctZahl_In_Worten = wEnd Function'----------------------Function FctZif(Par As Byte, r As Integer, w As String) w = w & Choose(r, "ein", "zwei", "drei", "vier", "fünf", "sech", "sieb", "acht", "neun") Select Case Par Case 1, 3 If r = 6 Then w = w & "s" If r = 7 Then w = w & "en" If Par = 3 And r > 0 Then w = w & "und" Case 2 w = w & "zehn" If r = 1 Then w = Left(w, Len(w) - 7) & "elf" If r = 2 Then w = Left(w, Len(w) - 8) & "zwölf" Case 4 If r = 2 Then w = Left(w, Len(w) - 4) & "zwan" w = w & "zig" If r = 3 Then w = Left(w, Len(w) - 3) & "ßig" End Select FctZif = wEnd Function'*********** CODE ENDE *************
- Wenn Du das geschafft hast, gehe in die Objektansicht von Excel (Tabellenansicht) und
- füge folgende Funktion in das Feld [C1] ein.
FctZahl_In_Worten
kopiere nun die Funktion wie eine Formel beliebig weit nach unten
in die Spalte C (soweit, wie Tabellendaten vorhanden)Fertig!
Ich hoffe, es hat geklappt und ich hab Dir geholfen!
p.s.: die Zahlworte sind kleingeschrieben.
Nachtrag: hier der gegoogelte Link:
http://www.donkarl.com/FAQ/FAQ2Allgemein.htm#2.11
Die Homepage von Karl Donaubauer: w w w . d o n k a r l . c o m
Versuche die Funktion =FEST(Zahl oder Formel; Dezimalstellen).
Beispiel in einer Zelle:
=FEST(10-9;0)&" Packen" ergibt "1 Packen".
WAS klappt nicht?
Wie lautet die Formel?
Was willst Du erreichen?
Beispiel?