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

Zufallszahlen mit mehreren Abhängigkeiten

Zufallszahlen mit mehreren Abhängigkeiten
01.07.2019 20:25:18
erichm
Hallo,
ich habe derzeit eine (sehr) umständliche Lösung und suche nach einer Optimierung:
Aus den Zahlen von 1 bis 90 müssen 9 Zahlen ausgewählt werden, wobei folgende Bedingungen zu beachten sind:
1. Es werden 3 Zahlenblöcke erstellt mit je 30 Zahlen.
2. Aus diesen Zahlenblöcken müssen
a) aus dem ersten Block 4 Zahlen sein
b) aus dem zweiten Block 2 Zahlen sein und
c) aus dem dritten Block 3 Zahlen sein.
Ich habe dies momentan so gelöst, dass ich innerhalb der Blöcke "Ranglisten" erstelle und dann die jeweilige Anzahl ermittle. Das bedeutet allerdings, dass ich sehr viele Berechnungen erstellen muss, bis dann ein richtiges Ergebnis dabei ist.
Optimal wäre natürlich eine Lösung, die schneller zum Ziel kommt.
Hier meine Musterdatei, die im ersten Bereich "meine Originallösung" mit den vielen notwendigen Rechenvorgängen zeigt. Und im 2. und 3. Bereich jeweils eine "fertige Lösung".
https://www.herber.de/bbs/user/130683.xlsx
Vielen Dank für eine Hilfe.
mfg

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zufallszahlen mit mehreren Abhängigkeiten
01.07.2019 21:02:46
onur
Wozu die Zufallszahlen von 0 bis 9999 ?
AW: Zufallszahlen mit mehreren Abhängigkeiten
01.07.2019 22:16:36
erichm
Hallo Onur,
das ist quasi meine Struktur für die "Rangliste"; bei der Höhe bis 9999 ist das Risiko, dass hier gleiche Zahlen vorkommen, sehr gering.
mfg
AW: Zufallszahlen mit mehreren Abhängigkeiten
01.07.2019 22:17:34
onur
Habe dir eben was gepostet.
AW: Zufallszahlen mit mehreren Abhängigkeiten
01.07.2019 22:22:10
erichm
Hallo Onur,
vielen Dank für den schnellen Lösungsvorschlag. Ist noch nicht ganz die richtige Struktur.
Habe beim lesen meiner Beschreibung jetzt entdeckt, dass ich nicht darauf hingewiesen habe, dass aus den senkrechten Reihen immer nur eine Zahl betroffen sein darf. In Deinem Beispiel also, darf pro Spalte nur eine rote Zahl vorhanden sein. Aus meiner Musterdatei kann man's grundsätzlich erkennen, dass aus jeder Spalte 1 Zahl kommt. Aber so eine Lösung wäre natürlich genial - in der Zeile 12 sollten dann pro Spalte die roten Zahlen aufgelistet werden - zur weiteren Verarbeitung.
Danke.
mfg
Anzeige
AW: Zufallszahlen mit mehreren Abhängigkeiten
02.07.2019 10:08:23
erichm
Noch ein Nachtrag: Habe entdeckt, dass es natürlich 10 (statt 9) Ergebnisspalten sind. Das bedeutet, dass statt 9 auch 10 Auswahlzahlen insgesamt möglich wären (in einem der 3 Blöcke dürfte eine Zahl mehr ausgewählt werden).
Wenn dies so wäre macht das nichts, weil ich bei der Weiterverarbeitung dann jeweils die Zahl streiche, die in einem Block zuviel ist. Vielleicht erleichtert das noch die Umsetzung.
Danke.
mfg
AW: Zufallszahlen mit mehreren Abhängigkeiten
02.07.2019 10:58:12
onur
Ich habe dir doch die Neue Datei gepostet !
Ausserdem hast du bereits geschrieben, dass 4 vom 1. Block und von den anderen je 3 genommen werden sollen - 4+3+3 ergibt doch 10 - oder?
Anzeige
AW: Zufallszahlen mit mehreren Abhängigkeiten
02.07.2019 11:07:26
erichm
Hallo onur,
da liegt jetzt irgendwie ein Missverständnis vor:
aus meinem ersten Betrag:
2. Aus diesen Zahlenblöcken müssen
a) aus dem ersten Block 4 Zahlen sein
b) aus dem zweiten Block 2 Zahlen sein und
c) aus dem dritten Block 3 Zahlen sein.

das sind die 9 notwendigen Zahlen
meine Hinweise zu der von Dir geposteten Datei:
https://www.herber.de/forum/messages/1700406.html
Anschließend kam noch mein Hinweis bzgl. der 10 statt 9 Spalten.
Danke.
mfg
AW: Zufallszahlen mit mehreren Abhängigkeiten
02.07.2019 17:38:30
onur
Und was willst du jetzt? 9 oder 10 Spalten? Wenn 10 - welche Aufteilung?
Anzeige
AW: Zufallszahlen mit mehreren Abhängigkeiten
02.07.2019 18:16:32
erichm
Hallo Onur,
also es müssen grundsätzlich immer alle 10 Spalten "ausgewertet werden".
Es bleibt bei der Aufteilung
a) aus dem ersten Block 4 Zahlen
b) aus dem zweiten Block 2 Zahlen und
c) aus dem dritten Block 3 Zahlen
Da immer pro Spalte maximal 1 Zahl ausgewählt werden darf, müssen 9 von den 10 Spalten ein Auswahlergebnis haben.
Falls die Lösung aber nur möglich ist, wenn in allen 10 Spalten 1 Zahl ausgewählt werden muss, dann komme ich damit auch zurecht, weil ich bei der Weiterverarbeitung die notwendige Korrektur (Reduzierung um 1 Zahl) berücksichtigen kann.
Danke.
mfg
Anzeige
warum nicht vba?
03.07.2019 09:34:44
mmat
Hallo,
mit VBA läßt sich das recht einfach lösen:
Sub zz()
Dim sp(9) As Long, m As Long, n As Long, x As Long
Dim spalte As Long, zeile As Long, d As Long, s As String
s = Space(10)
For n = 1 To 9
Do
x = Int(Rnd * 10) + 1
Loop Until Mid(s, x, 1) = " "
sp(n) = x: Mid(s, x, 1) = "X"
Next
[A1:J1].ClearContents
For n = 1 To 9
If n 
Bleibt eine Frage: wozu brauchtst du sowas?
vg, MM
AW: warum nicht vba?
03.07.2019 18:53:20
erichm
Hallo MM,
vielen Dank für die Lösungsmöglichkeit (passt leider noch nicht ganz, siehe unten).
Der "Verwendungszweck" dieser Analyse sind Beziehungen im Bereich Lieferanten / Kunden / Ware. Aus Vereinfachungsgründen haben wir die verschiedenen Beziehungen in 90 Nummern aufgeteilt. Wenn es für die Analyse eine schöne EXCEL-Lösung gäbe (wie diese hier), dann würden wir das noch entsprechend erweitern, ausbauen. Solange wir keine entsprechende Lösung haben, halten wir das auf Sparflamme.
Zu Deiner Lösung: Der Code berücksichtigt derzeit immer nur die jeweils erste Zeile aus den drei Blöcken.
Ich habe versucht, die 3 Zeilen pro Block in einer Zeile zusammenzufassen und den Code anzupassen, aber das hat natürlich nicht geklappt.....
In der Anlage die Datei mit Deinem Code und die eingebauten "Kontrollberechnungen".
https://www.herber.de/bbs/user/130718.xlsm
Danke nochmals.
mfg
Anzeige
AW: Warum nicht c++ :-)
04.07.2019 10:41:33
mmat
Hallo,
das ist ein ärgerlicher Fehler (das kommt davon, wenn man mit verschiedenen Programmiersprachen arbeitet, in einer anderen wäre das korrekt...)
Das muss natürlich heissen: "zeile = Int(Rnd() * 3)"
vg, MM
AW: Warum nicht c++ :-)
05.07.2019 07:44:36
erichm
Hallo MM,
vielen Dank - die Verteilung auf die einzelnen Zeilen klappt jetzt.
Eine Bedingung ist leider noch nicht erfüllt: Aus den Spalten 1 bis 10 darf jeweils maximal nur eine Zahl pro Spalte vorkommen (das war aus meiner Musterdatei ersichtlich, war jedoch im ersten Beitrag nicht konkret formuliert und wurde in den Folgebeiträgen aktualisiert).
Ist das ebenfalls machbar? Ich könnte auch damit leben, wenn dann statt 9 Zahlen dann 10 Zahlen ausgewählt werden müssen - in der Weiterverarbeitung der Daten kann das eliminiert werden.
Danke nochmals.
mfg
Anzeige
9 von 10, einer muß gehn ...
05.07.2019 13:54:48
10,
Hallo,
ich lebe eigentlich in der Überzeugung, das das funktioniert, die Bedingung hab ich sehr wohl gesehen.
Aber gut, vielleicht hab ichs ja nicht richtig verstanden.
hier nochmal eine Variante des Programms, die das Ergebnis etwas transparenter macht:
Sub zz()
Dim sp(9) As Long, m As Long, n As Long, x As Long
Dim spalte As Long, zeile As Long, d As Long, s As String
Dim c As Long
If [A1]  1 Then Matricks
s = Space(10)
For n = 1 To 9
Do
x = Int(Rnd * 10) + 1
Loop Until Mid(s, x, 1) = " "
sp(n) = x: Mid(s, x, 1) = "X"
Next
[A1:J11].ClearFormats
[A10:J11].ClearContents
For n = 1 To 9
If n 
vg, MM
Anzeige
Phantastische Lösung!
07.07.2019 14:00:49
erichm
Hallo MM,
vielen Dank, das ist natürlich genial und optimal.
Mal sehen wie ich mit dem Code zurechtkomme um die Modifizierungen für unsere umfassende Analyse vornehmen zu können. Das wird aber ein paar Tage dauern........ :)
mfg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige