Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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

Zufallszahl mit Nachkommastellen

Zufallszahl mit Nachkommastellen
16.04.2009 14:33:39
Stefan
Hallo zusammen,
mein Sohnemann hat in Mathe ein wenig Schwierigkeiten bei der Berechnung von Restmengen.
Und da sich Excel natürlich optimal zu Übungszwecken eignet, wollte ich eine Tabelle erstellen,
in der Zufallsbeträge erzeugt werden. Mit der rnd-Funktion geht das ja, aber leider nicht
mit Nachkommastellen. Und ich möchte nicht die Tabellenfunktion nutzen, da sonst das Blatt
(und die Zufallszahlen) gleich neu berechnet werden. Schaltet man die Neuberechnung aus,
kann ich keine Ergebniskontrolle einbauen.
Kann mich jemand mit einer Idee Unterstützen ?
Vielen Dank und Gruß
Stefan K.

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zufallszahl mit Nachkommastellen
16.04.2009 14:51:50
selli
hallo stefan,
so vielleicht:
Cells(1, 1) = Rnd() * 1000
gruß
selli
AW: Zufallszahl mit 2 Nachkommastellen
16.04.2009 15:16:37
hary
Hi Stefan
so?

Sub zufall()
' höchstens 100 und nur 2 Stellen hinter Komma
Cells(1, 1) = WorksheetFunction.Round(Rnd() * 100, 2)
End Sub


Gruss Hary

WorksheetFunction überflüssig, Round...
16.04.2009 21:51:09
Luc:-?
...gibt's auch als vbFkt, Hary.
Außerdem sollte als 1.Zeile nach Kopf Randomize stehen.
Gruß Luc :-?
AW: @ Luc
16.04.2009 22:25:48
Gerd
'n Abend,
Round (entspr. VBA.Round) kannst über den Harz kicken. Wer will schon eine Rundung auf gerade Zahlen?
Worksheetfunction.Round oder Application.Round
Gruß Gerd
Anzeige
Frage mich ernsthaft, was du wohl für...
16.04.2009 23:28:12
Luc:-?
...ein VB haben musst, Gerd...?!
Wenn ich round( schreibe öffnet sich ein PopUp mit folg Inhalt:
Round(Number, [NumDigitsAfterDecimalAsLong])
Was meinst du wohl, was die Bezeichnung von Arg2 auf deutsch heißt? Oder meinst du, die Anzahl der Dezimalen auf die gerundet wdn soll, müsste auch als Dezimalzahl deklariert wdn... ;->
Eine Rundung auf Ganzzahlen erreichst du mit CInt, CLng, Divisionsoperator \, Round ohne Arg2 bzw mit Arg2=0 usw...
Was sich unterscheidet ist, dass Arg2 stets ≥0 sein muss, aber auch fehlen darf, und dass eine auf ...45 endende Dezimalzahl auf eine Dezimale weniger gerundet nicht aufgerundet wird, also ...4 ergibt, während die xlFkt auf ...5 aufrundet! Und Ersteres ist oft erwünscht (Buchhaltung).
Fazit: Nicht Gerüchte nachplappern, sondern selber denken!
Gruß Luc :-?
Anzeige
AW: Frage mich ernsthaft, was du wohl für...
17.04.2009 20:37:34
Gerd
Hi Luc!

Sub t()
MsgBox WorksheetFunction.Round(2.5, 0)   '=3
MsgBox Application.Round(2.5, 0)    '=3
MsgBox Round(2.5, 0)   '=2
End Sub


Ob das ein Bug in der Round-Funktion ist oder diese nur in der Hilfe falsch oder unzulänlich beschrieben ist,
ist mir egal. Ob sie für die Chaise Manhattan Bank in Illinois passt ebenfalls.
Rem: Für hiesige Breiten ist so ein Rückgabewert ganz einfach bescheuert.
Alternativen sind vorhanden. :-)
Gruß Gerd

Wenn du dich an der buchhalterischen...
17.04.2009 23:43:30
Luc:-?
...Rundung störst, Gerd,
dann hat das ja wohl nichts mit ganzzahlig zu tun! Außerdem gilt die überall auf der Welt, auch bei uns! Vielleicht haben wir die sogar erfunden, würde mich nicht wundern... ;-)
Aber offensichtlich kennst du das nicht. Das geht so...
In deinem Bsp hast du 2,5 - hier besagt die Regel 5 ist die letzte Ziffer also abrunden. Hättest du 2,51 geschrieben, würde aufgerundet wdn. Das ist in diesem Bereich so festgelegt. Beachte, xl ist eine Kalkulationssoftware! Eigentlich hätte RUNDEN so fkt müssen, aber das hatten die ursprünglichen Pgmierer wohl wie auch manches Andere übersehen. MS hat dann so etwas in VBA korrigiert. In xl selbst ging das aus Kompatibilitätsgründen nicht mehr. Ein anderes Bsp für Korrekturen mit VBA wäre das Datum - 1900 ist in xl fälschlich ein Schaltjahr, in VBA nicht...
Gruß Luc :-?
Anzeige
AW: Wenn du dich an der buchhalterischen...
18.04.2009 12:22:47
Gerd
Hi Luc,
man sollte ganz einfach auf den schrägen Algorithmus der vba.round-funktion hinweisen, wenn man diese
empfiehlt, da normalerweise Kaufmännisches Runden benötigt u. erwartet wird. :-)
Gruß Gerd
Es ist natürlich noch etwas anders,...
19.04.2009 06:21:30
Luc:-?
...Gerd,
insofern ist es schon berechtigt, dass RUNDEN nach der einfacheren Regel des "Kaufmännischen Rundens" erfolgt. Allerdings muss beachtet wdn, dass das kaufmännische Runden kleine systematische Fehler erzeugt, da das Aufrunden um 0,5 vorkommt, das Abrunden um 0,5 jedoch nie; das kann Statistiken geringfügig verzerren. Außerdem ist das Verhalten bei positiven und negativen Zahlen unterschiedlich, wenn die zu rundende Ziffer eine 5 ist (Zitat). Deshalb wird oft die andere Form verlangt, die 3 Regeln hat, wobei noch zwischen gerader und ungerader "Vorrundungsziffer" unterschieden wird. Der größeren Genauigkeit wg wird das ja auch Mathematische Rundung bzw engl Banker's Rounding genannt. Deshalb wohl deine Bemerkung mit den US-Banken. Allerdings wird das in Wissenschaft & Technik ebenfalls verwendet. Es ist auch leichter, der zu rundenden Zahl ggf einen kleinen Betrag hinzuzufügen, um Gleichheit zum K.R. zu erreichen, als das M.R. mit RUNDEN im TabBlatt nachzustellen. Insofern ist das so auch OK. Allerdings war mir das bisher gar nicht bewusst, da es ja auch MS in der VBE-Hilfe nicht für nötig hielt/hält, darauf hinzuweisen... ;-)
Gruß Luc :-?
Anzeige
So, versuche einen ergänzenden Upload!
22.05.2009 04:56:44
Luc:-?
Habe mich zwischenzeitlich mal etwas weitergehend mit dem Problem auseinandergesetzt und eine udFkt geschrieben, deren Wirkung im Folgd dokumentiert ist...
Userbild
Grüße an die Nachwelt!
Luc\ius :-?
xxlFkt RoundA ist Bestandteil des AddIns FXsubset
Die RMeth 4 u. 5 sind noch nicht optimal; wdn in nächster Vs verbessert!

6 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige