Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Excel Formel

Empfohlene Antworten

Veröffentlicht

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

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!

Vielen lieben Dank, werds mal ausprobieren.

Obwohl ich eigentlich ne Excel-Taugliche Lösung brauche...

also, wenn noch jemandem was einfällt :)

Äh, was ist an VBA nicht Excel-tauglich? Oder wie meinst du das?

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...

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.

Wow - ich bin begeistert.

Wobei die Haarfarbe einem so helfen kann ;)

Dann werden wir das jetzt mal schön ausprobieren.

Danke, wirklich sehr nett von Dir!!!

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

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!

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

....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?

Mache ich morgen, wenn ich wieder in der Firma bin, denn nun gehe ich erst mal an den See.... :)

Liebe Grüße

@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

@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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.