Anzeige
Archiv - Navigation
1916to1920
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

zufällige Aufteilung einer Zufallszahl

zufällige Aufteilung einer Zufallszahl
27.01.2023 08:58:01
Bastian
Hallo zusammen,
mal eine Frage an die Excel-Profis hier ;)
Ich möchte eine Zahl aus ZUFALLSBEREICH(0;1000) (Zelle A1) zufällig auf vier bestimmte Zellen (B3, C3, D3, E3) aufgeteilt haben. Wichtig ist, dass es ganze Zahlen sind, das ganze zu 100% zufällig ist und ganz wichtig, dass die Formel dafür keine Umwege geht, und keine weiteren, außer den oben genannten Zellen miteinbezieht.
Ich weiß gar nicht, ob das so möglich ist, wie ich mir das denke.
Über Antworten und Lösungsvorschläge freue ich mich.
VG

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zufällige Aufteilung einer Zufallszahl
27.01.2023 09:16:43
Daniel
Hi
das ist meines Wissens nach in deiner Excelversion nur über ein VBA-Makro möglich.
eine Lösung mit vier weiteren Zellen wäre:
in B2:E2 (oder vier anderen Zellen) die Formel: =Zufallszahl()
in B3:D2 die Formel: =Runden($A$1*B3/Summe($B$2:$E$2);0)
in E3: =A1-Summe(B3:E3)
Gruß Daniel
AW: ist mit einer Formel möglich ...
27.01.2023 09:27:29
neopa
Hallo Bastian,
... jedoch vorausgesetzt in A3 steht keine Zahl. Dann z.B. wie folgt:
In B3: =RUNDEN(($A$1-SUMME($A3:A3))/WENN(SPALTE()=5;1;ZUFALLSBEREICH(2;4));)
und diese ziehend nach rechts bis E3 kopieren.
Gruß Werner
.. , - ...
AW: ist mit einer Formel möglich ...
27.01.2023 09:57:17
Daniel
Hi
naja, so richtig zufällig ist diese Verteilung aber nicht.
der erste Wert B3 ist immer 1/4, 1/3 oder 1/2 des Ausgangswertes
Gruß Daniel
Anzeige
AW: kann man so sehen ...
27.01.2023 11:52:01
neopa
Hallo,
... weniger auffällig würde es sein, wenn ich für ZUFALLSBEREICH() in der Formel anstelle der 4 z.B. eine 9 eingesetzt hätte.
Gruß Werner
.. , - ...
AW: kann man so sehen ...
27.01.2023 12:25:33
Daniel
Man könnte auch das /Zufallsbereich durch *Zufallszahl() ersetzen.
Wobei das meiner Vermutung nach auch nicht 100% zufällig ist, weil es für die ersten Werte größere Zahlen bevorzugt.
AW: das ist & bleibt trotzdem ZUFALL owT
27.01.2023 14:02:32
neopa
Gruß Werner
.. , - ...
AW: zufällige Aufteilung einer Zufallszahl
27.01.2023 13:15:29
ChrisL
Hi
Mit Power-Query. Ohne VBA oder Hilfszellen, dafür mit einer unvermeidbaren Titelzeile im Resultat.
Menü Daten, neue leere Abfrage und den Code im Erweiterten Editor einfügen.
In A1 einfach zurück addieren. =SUMME(B3:E3)
Nicht ganz sicher bin ich, ob das Maximum bei unglücklicher Rundung auch mal überschritten werden könnte. Vermutlich ja, aber wäre schon ein grosser Zufall. Zudem habe ich mich gefragt, ob man null im Sinne von nichts verteilen kann (rhetorische Frage ;).
let
    Quelle = {1..4},
    Zufallszahl = Number.IntegerDivide(Number.RandomBetween(0,1001),1),
    #"In Tabelle konvertiert" = Table.FromList(Quelle, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Hinzugefügte benutzerdefinierte Spalte" = Table.Buffer(Table.AddColumn(#"In Tabelle konvertiert", "Zufallsverteilung", each Number.Random())),
    #"Hinzugefügte benutzerdefinierte Spalte2" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "ZufallszahlTotal", each Zufallszahl),
    #"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte2", "Zufallszahl", each Number.Round([ZufallszahlTotal]*[Zufallsverteilung]/List.Sum(#"Hinzugefügte benutzerdefinierte Spalte2"[Zufallsverteilung]),0)),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Hinzugefügte benutzerdefinierte Spalte1",{"Zufallsverteilung", "ZufallszahlTotal"}),
    #"Pivotierte Spalte" = Table.Pivot(Table.TransformColumnTypes(#"Entfernte Spalten", {{"Column1", type text}}, "de-CH"), List.Distinct(Table.TransformColumnTypes(#"Entfernte Spalten", {{"Column1", type text}}, "de-CH")[Column1]), "Column1", "Zufallszahl")
in
    #"Pivotierte Spalte"
(Anmerkung für Werner: Ein Beispiel wo Table.Buffer benötigt wird. Die generierten Zufallszahlen wären sonst zu "flüchtig")
cu
Chris
Anzeige
AW: interessant ...
27.01.2023 14:45:36
neopa
Hallo Chris,
... danke für Dein PQ-Beispiel und Deine Anmerkung.
Die Überschriftenzeile könnte ja die Werte übernehmen (mit [Erste Zeile als Überschriften übernehmen]). Für die Summenbildung müsste man dann die Werte aber in Excel vor XL365 natürlich z.B. so =SUMMENPRODUKT(--Abfrage1[#Kopfzeilen]) ermitteln.
Gruß Werner
.. , - ...
AW: interessant ...
27.01.2023 15:36:18
ChrisL
Hi
An die Möglichkeit zur Verwendung der Titelzeile habe ich nicht gedacht. Aber halt mit Leerzeile danach und als Text-String.
Noch eine andere Lösung mittels Power-Pivot. Ein wenig getrickst, denn die "Hilfszellen" sind hiermit einfach im Datenmodell bzw. in PQ versteckt.
Die PQ-Lösung fast wie vorher. Auf die Pivotierung kann verzichtet werden. Dafür musste noch eine saubere Typenkonvertierung gemacht werden.
Abfrage 1 - nur Verbindung - Option "ins Datenmodell laden" aktivieren
let
     Quelle = {1..4},
     Zufallszahl = Number.IntegerDivide(Number.RandomBetween(0,1001),1),
     #"In Tabelle konvertiert" = Table.FromList(Quelle, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
     #"Hinzugefügte benutzerdefinierte Spalte" = Table.Buffer(Table.AddColumn(#"In Tabelle konvertiert", "Zufallsverteilung", each Number.Random())),
     #"Hinzugefügte benutzerdefinierte Spalte2" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "ZufallszahlTotal", each Zufallszahl),
     #"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte2", "Zufallszahl", each Number.Round([ZufallszahlTotal]*[Zufallsverteilung]/List.Sum(#"Hinzugefügte benutzerdefinierte Spalte2"[Zufallsverteilung]),0)),
    #"Geänderter Typ" = Table.TransformColumnTypes(#"Hinzugefügte benutzerdefinierte Spalte1",{{"Column1", Int64.Type}, {"Zufallszahl", Int64.Type}, {"ZufallszahlTotal", Int64.Type}, {"Zufallsverteilung", type number}})
in
    #"Geänderter Typ"
Im Menü Power-Pivot, neues Measure
MeinMeasure
=SUM(Abfrage1[Zufallszahl])
Dann die Cube-Funktion in die Tabelle einfügen:
=CUBEWERT("ThisWorkbookDataModel";"[Abfrage1].[Column1].["&SPALTE(A1)&"]";"[Measures].[MeinMeasure]") 
cu
Chris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige