Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zufallszahl

Forumthread: Zufallszahl

Zufallszahl
08.08.2005 01:16:36
Alex
Hallo Leute,
kann mir jemand mit der Funktion =ZUFALLSZAHL() helfen
ich möchte für Artikel Nummern 1-100 Zufallszahl von 1-100 vergeben
leider ist es immer so, dass EXEL manche Zahlen doppelt und manche
garnicht "rausspuckt" hat jemand eine Lösung
Ich danke jetzt schon mal
Gruss Alex
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zufallszahl
08.08.2005 01:27:30
Matthias G
Hallo Alex,
das ist halt Zufall ;-)
wie hast du denn die Formel gewählt?
1-100: =GANZZAHL(ZUFALLSZAHL()*100)+1
Gruß Matthias
AW: Zahlen zufällig anordnen
08.08.2005 01:42:23
Matthias G
Hallo Alex,
wenn du meinst, dass du in einem Bereich alle Zahlen von 1-... zufällig anordnen willst, dann vielleicht so:

Sub Zufallsliste()
Const Bereich = "A1:A100"
Dim i As Integer
Dim tmp As Integer
Dim z As Range
Dim MaxZahl As Integer
Application.Calculation = xlCalculationManual
MaxZahl = Range(Bereich).Count
Range(Bereich).ClearContents
Randomize
For Each z In Range(Bereich)
Do
tmp = Int(Rnd() * MaxZahl) + 1
Loop Until WorksheetFunction.CountIf(Range(Bereich), tmp) = 0
z.Value = tmp
Next z
Application.Calculation = xlCalculationAutomatic
End Sub

Das funktioniert jedoch ab 1000 Zahlen immer und immer langsamer...
Gruß Matthias
Anzeige
AW: Zahlen zufällig anordnen
08.08.2005 06:57:53
Erich G.
Hallo Alex und Matthias,
wenn es viele Zahlen sein sollen, geht das schnell mit

Sub Zufallsliste2()
Const Bereich = "C10:C20000"
'Schnelle Erzeugung einer zufälligen Anordnung der Zahlen ab 1
'in einem (fast) beliebig großen Zeilenbereich einer Spalte
'Die aktuelle Auswahl (ActiveCell, Selection) wird wieder hergestellt.
'Voraussetzung: Die letzten zwei Zeilen und drei Spalten der Tabelle sind frei.
Dim bb As Range, merkA As Range, merkS As Range
'                                aktuelle Auswahlen merken
Set merkA = ActiveCell
Set merkS = Selection
'                                Leerzellen um Bereich erzeugen (wg. Sort)
Set bb = Range(Bereich)
bb.Columns(1).Insert
bb.Columns(1).Offset(0, 1).Insert
Rows(bb.Cells(1, 1).Row + bb.Cells.Rows.Count).Insert
Rows(bb.Cells(1, 1).Row).Insert
'                                Zahlen und Zufallszahlen eintragen
bb.FormulaLocal = "=ZEILE()+1-" & bb.Row
bb.Copy
bb.PasteSpecial xlPasteValues, xlNone, False, False
bb.Columns(1).Insert
Randomize
Selection.FormulaLocal = "=ZUFALLSZAHL()"
Selection.Copy
Selection.PasteSpecial xlPasteValues, xlNone, False, False
'                                Sort nach Zufallszahlen
Selection.Cells(1, 1).Sort Key1:=Selection.Cells(1, 1), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
'                                Spalte mit Zufallszahlen löschen
bb.Offset(0, -1).Delete xlToLeft
'                                Leerzellen um Bereich wieder löschen
bb.Offset(0, -1).Delete xlToLeft
bb.Offset(0, 1).Delete xlToLeft
Rows(bb.Cells(1, 1).Row - 1).Delete
Rows(bb.Cells(1, 1).Row + bb.Cells.Rows.Count).Delete
'                                Auswahlen wiederherstellen
merkS.Select
merkA.Activate
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zufallszahl / Lösung ohne VBA
08.08.2005 07:57:36
Klaus M.vdT.
Moin,
Schreib in A1 : =zufallszahl()
Schreib in B1 : =RANG(A1;A:A)+ZÄHLENWENN(A$1:A1;A1)-1
Kopier beides runter bis A100 und B100, markiere Spalte B, Kopieren und Werte einfügen, Spalte A löschen.
Anmerkung: in B1 würde auch =RANG(A1;A:A) vollkommen ausreichen, die Chance das eine zufallszahl() sich wiederholt ist etwa eins zu einer Quadrilliarde :) das Zählenwenn fängt aber genau diesen Fall ab - Sicherheit geht vor.
Gruß,
Klaus M.vdT.
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige