Discussion:
Ziffer in Dezimalzahl auslesen
(zu alt für eine Antwort)
dulle
2006-06-09 18:12:23 UTC
Permalink
Hallo NG,

ich bin auf der Suche nach einer Excel-Funktion mittels derer ich jede
beliebige Stelle innerhalb von Dezimalzahlen sowohl vor als auch nach
dem Komma auslesen kann.

Roland
Herbert Taferner
2006-06-09 18:28:02 UTC
Permalink
Hallo dulle,
^^^^^

bitte Trage deinen Namen im Adressfeld ein,
dies ist hier üblich
Post by dulle
ich bin auf der Suche nach einer Excel-Funktion mittels derer ich jede
beliebige Stelle innerhalb von Dezimalzahlen sowohl vor als auch nach dem
Komma auslesen kann.
versuchs mit z. B.
=TEIL(A1;StellederZahl;1)*1

mfg Herbert
Klaus "Perry" Pago
2006-06-09 18:50:58 UTC
Permalink
Hallo Herbert, hallo dulle
Post by Herbert Taferner
Hallo dulle,
^^^^^
bitte Trage deinen Namen im Adressfeld ein,
dies ist hier üblich
Post by dulle
ich bin auf der Suche nach einer Excel-Funktion mittels derer ich jede
beliebige Stelle innerhalb von Dezimalzahlen sowohl vor als auch nach dem
Komma auslesen kann.
versuchs mit z. B.
=TEIL(A1;StellederZahl;1)*1
mit etwas "Adressrechnung" kann man sich auch auf die Position des Kommas
beziehen - in A1 soll die Zahl stehen und in B1 die Angabe, welche Stelle
vor (positiv) oder nach (negativ) dem Komma gewünscht wird (zB 3, 1, -2
usw):

C1: =TEIL(A1;FINDEN(",";A1)-B1;1)*1

eine Fehlerbehandlung sollte man evtl. noch mit einbauen

Gruß
Klaus
Solaiman Ghaus
2006-06-08 19:10:04 UTC
Permalink
Hallo Zusammen,

Klaus "Perry" Pago schrieb:
[ ... ]
Post by Klaus "Perry" Pago
mit etwas "Adressrechnung" kann man sich auch auf die Position des Kommas
beziehen - in A1 soll die Zahl stehen und in B1 die Angabe, welche Stelle
vor (positiv) oder nach (negativ) dem Komma gewünscht wird (zB 3, 1, -2
C1: =TEIL(A1;FINDEN(",";A1)-B1;1)*1
Ich würde es lieber mit LÄNGE(RUNDEN(A1;0)) arbeiten als mit FINDEN.
Denn nicht über all "," gilt als Dezimaltrennzeichen.
Post by Klaus "Perry" Pago
eine Fehlerbehandlung sollte man evtl. noch mit einbauen
Gruß
Klaus
Gruß
Solaiman
Klaus "Perry" Pago
2006-06-09 19:21:10 UTC
Permalink
Hallo Solaiman,
Post by Solaiman Ghaus
Hallo Zusammen,
[ ... ]
Post by Klaus "Perry" Pago
mit etwas "Adressrechnung" kann man sich auch auf die Position des Kommas
beziehen - in A1 soll die Zahl stehen und in B1 die Angabe, welche Stelle
vor (positiv) oder nach (negativ) dem Komma gewünscht wird (zB 3, 1, -2
C1: =TEIL(A1;FINDEN(",";A1)-B1;1)*1
Ich würde es lieber mit LÄNGE(RUNDEN(A1;0)) arbeiten als mit FINDEN. Denn
nicht über all "," gilt als Dezimaltrennzeichen.
Man wird flexibler - nach Anpassung der "Adressrechnung" würde daraus:

=TEIL(A4;LÄNGE(RUNDEN(A4;0))+1-B4;1)*1
Post by Solaiman Ghaus
Gruß
Solaiman
Gruß
Klaus
Thomas Ramel
2006-06-09 20:16:25 UTC
Permalink
Grüezi zusammen

Klaus "Perry" Pago schrieb am 09.06.2006
Post by Klaus "Perry" Pago
Post by Solaiman Ghaus
Post by Klaus "Perry" Pago
mit etwas "Adressrechnung" kann man sich auch auf die Position des Kommas
beziehen - in A1 soll die Zahl stehen und in B1 die Angabe, welche Stelle
vor (positiv) oder nach (negativ) dem Komma gewünscht wird (zB 3, 1, -2
C1: =TEIL(A1;FINDEN(",";A1)-B1;1)*1
Ich würde es lieber mit LÄNGE(RUNDEN(A1;0)) arbeiten als mit FINDEN. Denn
nicht über all "," gilt als Dezimaltrennzeichen.
=TEIL(A4;LÄNGE(RUNDEN(A4;0))+1-B4;1)*1
Als weitere Alternative (da ich Zahlen nicht gerne mit String-Operationen
behandle) vielleicht eine rein arithmetische Version:

=KÜRZEN(REST(A1/(10^(B1-(B1>0)));10);0)


Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2000 SP-3]
Microsoft Excel - Die ExpertenTipps:
(http://tinyurl.com/9ov3l und http://tinyurl.com/cmned)
Klaus "Perry" Pago
2006-06-09 20:35:18 UTC
Permalink
Hallo THomas,
Post by Thomas Ramel
Als weitere Alternative (da ich Zahlen nicht gerne mit String-Operationen
=KÜRZEN(REST(A1/(10^(B1-(B1>0)));10);0)
nicht schlecht - auch die "Komma-Thematik" ist "sauber" gelöst :) - Ich
hätte im 1. Step wieder eine komplizierte WENN-Konstruktion gebraucht

Gruß
Klaus
Thomas Ramel
2006-06-10 05:29:16 UTC
Permalink
Grüezi Klaus

Klaus "Perry" Pago schrieb am 09.06.2006
Post by Klaus "Perry" Pago
Post by Thomas Ramel
Als weitere Alternative (da ich Zahlen nicht gerne mit String-Operationen
=KÜRZEN(REST(A1/(10^(B1-(B1>0)));10);0)
nicht schlecht - auch die "Komma-Thematik" ist "sauber" gelöst :)
Danke für die Blumen - es zahlt sich offenbar aus, dass Mathematik seit
einiger Zeit wieder zu meinen Schulfächern gehört ;-)

Verbesserungswürdig wäre noch die Behandlung der '0', da 10^0 eben '1'
ergibt und andererseits versagt REST() bei grossen Werten....... :-(


Das REST()-Problem könnte man dann so lösen:

=KÜRZEN((A1/(10^(B1-(B1>0))))-(GANZZAHL((A1/(10^(B1-(B1>0))))/10)*10);0)

...bleibt noch die Sache mit der '0', die ich im ersten Anlauf dann gerne
so gelöst hätte (mit dem Zellenformat '0;0;;'):

=(B1<>0)*KÜRZEN((A1/(10^(B1-(B1>0))))-(GANZZAHL((A1/(10^(B1-(B1>0))))/10)*10);0)

Das hat den Vorteil, dass neben dem Komma (bei Angabe '0' in B1') auch alle
zu grossen oder zu kleinen Stellenangaben als leere Zelle ausgegeben
werden. :-)

...der Nachteil ist dann allerdings, dass eine eventuell in der Zahl
enthaltene '0' ebenfalls nicht ausgegeben wird :-(

Also dann folgendes mit Zellenformat 'Standard':

=WENN(B1<>0;KÜRZEN((A1/(10^(B1-(B1>0))))-(GANZZAHL((A1/(10^(B1-(B1>0))))/10)*10);0);"")

und alle zu grossen/kleinen Stellenangaben werden ebenfalls als '0'
ausgegeben.
Post by Klaus "Perry" Pago
- Ich hätte im 1. Step wieder eine komplizierte WENN-Konstruktion
gebraucht
...da stehen wir dann auch wieder, wenn wir alle oben genannten Fälle (und
die, welche ich nun noch nicht bedacht habe, berücksichtigen will....


Ich denke, wir überlassen nun Roland mal die Qual der Wahl ;-)



Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2000 SP-3]
Microsoft Excel - Die ExpertenTipps:
(http://tinyurl.com/9ov3l und http://tinyurl.com/cmned)
Roland Dubenkow
2006-06-11 08:27:34 UTC
Permalink
Post by dulle
Hallo NG,
ich bin auf der Suche nach einer Excel-Funktion mittels derer ich jede
beliebige Stelle innerhalb von Dezimalzahlen sowohl vor als auch nach
dem Komma auslesen kann.
Roland
Vielen Dank für die Antworten.

Loading...