Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich habe eine kleine Excel-Herausforderung:

Werte die als Zahlen eingetragen werden, sollen in einer weiteren Spalte automatsche als Wort ausgegeben werden.

Beispiel:

der Wert 12,04 soll in der nächsten Spalte automatisch als eins-zwei,null-vier ausgegeben werden.

Weiß jemand wie man das am einfachsten umsetzen kann?

Liebe Grüße

Purzel

Geschrieben

Mit einer Excel-Formel wüßte ich da keine Lösung, aber mit einem kleinen VBA Makro in dem Stil (Achtung: Pseudo-Code)

zahl = AktiveZelle.Text

zahlwort = ""

gehe von 1 bis Ende(zahl)

select case zahl

case 1

zahlwort = zahlwort & "eins-"

case 2

zahlwort = zahlwort & "zwei-"

...

ende select

nächstes zeichen

da du dann am Ende einen "-" zuviel hast, mußt du das letzte Zeichen noch per Right() abschneiden... und fertig!

Geschrieben

Oh Menno - ich wollt einfach nur ne schön einfache Formel. Diesen Programmierkrams kriegen wir hier nicht hin...

Mein Kollege meinte schon ich soll mal dazu schreiben das ich blond bin und abwarten ob dann was besseres kommt :)

Aber am schnellsten geht es wahrscheinlich die Werte einfach per Hand einzugeben...

Geschrieben
Original geschrieben von Purzel

Mein Kollege meinte schon ich soll mal dazu schreiben das ich blond bin und abwarten ob dann was besseres kommt :)

Ach sag das doch... *g*

Dann bin ich mal so frei... erstell in dem Excel-Sheet einen Button und füge dort als Quellcode folgendes ein:

Dim zahl As String

Dim zahlwort As String

zahl = ActiveCell.Text

zahlwort = ""

For i = 1 To Len(zahl)

Select Case Mid(zahl, i, 1)

Case "1"

zahlwort = zahlwort & "eins-"

Case "2"

zahlwort = zahlwort & "zwei-"

Case "3"

zahlwort = zahlwort & "drei-"

Case "4"

zahlwort = zahlwort & "vier-"

Case "5"

zahlwort = zahlwort & "fünf-"

Case "6"

zahlwort = zahlwort & "sechs-"

Case "7"

zahlwort = zahlwort & "sieben-"

Case "8"

zahlwort = zahlwort & "acht-"

Case "9"

zahlwort = zahlwort & "neun-"

Case "0"

zahlwort = zahlwort & "null-"

Case ","

zahlwort = Mid(zahlwort, 1, Len(zahlwort) - 1)

zahlwort = zahlwort & ","

End Select

Next i

zahlwort = Mid(zahlwort, 1, Len(zahlwort) - 1)

ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column + 1) = zahlwort

Die Zelle, die markiert ist (immer nur eine!) wenn du auf den Button drückst, wird dann in "Wörter" umgewandelt und dann in den Zelle rechts daneben geschrieben.

Geschrieben

oder doch ohne VB?

benötigte Formel:

Zahl zu Text

FEST(Zahl;Dezimalstellen;Keine_Punkte)

Zahl = deine Zahl die wir Umwandeln wollen

Dezimalstellen = Wieviele werden benötigt?

Keine_Punkte = WAHR -> keine Tausendertrennpunkte

Suchen & Ersetzen

WECHSELN(Text;Alter_Text;Neuer_Text;Ntes_Auftreten)

Text = Text der durchsucht wird

Alter_Text = String, nach dem gesucht wird

Neuer_Text = String, der eingefügt werden soll

Ntes_Auftreten = für deinen Zweck uninteressant

Da Excel maxmial sieben Verzweigungen innerhalb einer Formel zulässt, muss man leider zwei Formeln, in zwei verschiedenen Zellen verwenden. Die für den Zwischenschritt, kannst du ja dann ausblenden.

Zelle A1: Inhalt: 123456789,00

Zelle A2:

Formel: =WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(FEST(A1;2;WAHR);6;"SECHS-");5;"FÜNF-");4;"VIER-");3;"DREI-");2;"ZWEI-");1;"EINS-");0;"NULL-")

Ergebniss: EINS-ZWEI-DREI-VIER-FÜNF-SECHS-789,NULL-NULL-

Zelle A3:

Formel: =WECHSELN(WECHSELN(WECHSELN(WECHSELN(A2;9;"NEUN-");8;"ACHT-");7;"SIEBEN-");"-,";",")

Ergebniss: EINS-ZWEI-DREI-VIER-FÜNF-SECHS-SIEBEN-ACHT-NEUN,NULL-NULL-

Wenn du das letzte Minus weg haben willst:

Zelle A4: Formel: =LINKS(A3;LÄNGE(A3)-1)

so denn dies die Lösung ohne VB.

Gruß Pönk

Geschrieben

Super - ihr seid echt meine Helden heute!

Vielen lieben Dank.

ich hoffe das ich das irgendwie hinbekomme (Der Button in Excel gestaltet sich nämlich schon schwierig!), aber das wird schon irgendwie.

Hab ja relativ fähige Kollegen!

Geschrieben

Relativ einfach...smile

Angenommen in Zelle B6 steht der Dezimalwert und die Ausgabe soll in B8 erfolgen, dann schreibe in B8 folgende Formel:

=WENN(B6>=1000000000;"nur unter 1 Milliarde";WENN(B6<1;"null";WENN(B6<0;"minus ";"")&WENN(B13=0;"";C13)&WENN(UND(B14=0;B15=0);"";D14)&WENN(B16=0;"";C16)&WENN(UND(B17=0;B18=0);"";D17)&WENN(B19=0;"";C19)&WENN(UND(B20=0;B21=0);"";WENN(UND(B20=0;B21=1);"eins";D20))))&WENN(F19=0;"";H20)

Wie oben ersiehst werden Werte von Zellen abgefragt, welche noch keine Werte enthalten, also B13 - B20, in diese Zellen trägst du folgende Funktionen ein(am Bsp. von B13)

=WERT(RECHTS(GANZZAHL(ABS(B6)/100000000)))

Hier wird also geprüft ob es an dieser Stelle der Zahl einen Wert gibt und anschließend in der Zelle C13 mit folgender Funktion in einer "Wortzahl" ausgeschrieben:

=WENN(B13=1;"ein";WENN(B13=2;"zwei";WENN(B13=3;"drei";WENN(B13=4;"vier";WENN(B13=5;"fünf";WENN(B13=6;"sechs";WENN(B13=7;"sieben";WENN(B13=8;"acht";"neun"))))))))&"hundert"&WENN(UND(B14=0;B15=0);"millionen";"")

Das Ganze wird nun mit den Zellen B14/C14 bis B21/C21 weitergeführt, dabei verringert sich die zu untersuchende Zahl jeweils um eine weitere 10er Potenz (also B13 mit 10000000, B14 mit 1000000 usw.)

Bis jetzt ermittelst du mit diesen Funktionen erst die Wortzahlen v o r dem Komma....Für die Stellen danach ist noch einmal dergleiche Auffwand nötig....Wenn du magst schicke ich dir einmal das komplette Beispiel... ;)

Aber wie du siehst: Das Ganze hat bestimmt nix mit blond zu tun...grins

Geschrieben

....doch hat es wohl - ich hab von Deinem Beitrag nicht wirklich viel verstanden. Kann aber auch an der Uhrzeit liegen.

Beispiel wäre Klasse! Kannst Du mir das bitte an meine E-Mail-Adresse schicken?

Geschrieben

@Purzel:

Wenn du dazugeschrieben hättest, das du weiblich bist, wäre es schneller gegangen :D

@All:

Also wenn ich mir so die Formel ansehe... oh ne... dann lieber VBA, das geht schneller *g* Vor allem Blick ich da schneller den Code

Geschrieben

@EvilNick:

tstsss.... ;)

Vorausgesetzt deine Abfrage funktioniert so (was ich mangels Verständnis nicht bewerten kann...smile) hast du natürlich recht.....

Allerdings wollte Purzel das Problem ja mittels Funktionen angehen und dafür: :uli

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...