Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 18:25:12
28.04.2024 14:18:05
28.04.2024 13:43:14
Anzeige
Archiv - Navigation
1768to1772
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

Gleichverteilung

Gleichverteilung
04.07.2020 10:28:49
Siggi
Hallo,
ich möchte eine Gleichverteilung in einer Reihenfolge aus einer bestimmten Gesamtmenge.
Beispiel: Gesamtmenge sind 100, davon 10x blau, 50x grün, 33x gelb und 7x rot.
Nun möchte ich eine Reihenfolge bilden, bei der jede einzelne Farbe einigermaßen gleichverteilt vorkommt
Z.B bei Rot:
Soll 7x vorkommen, also wären die Plätze 7, 21, 35, 49, 66, 80, 94 auf die 100 Plätze gesehen gleichverteilt
Z.B. grün:
Soll 50x vorkommen, also wäre jeder 2.te Platz die Gleichverteilung. 2, 4, 6, 8 etc..
Jede Farbe einzeln betrachtet wäre also relativ einfach zu ermitteln. Es sollen aber alle zusammen ermittelt werden, ohne dass ein Platz doppelt vergeben wird (im oberen Beispiel wäre der Platz 66 ja von rot und grün belegt).
Am Ende will ich also eine Reihenfolge haben, die z.B. so aussehen könnte (von Platz 1 bis 100).
grün, grün, gelb, grün, blau, grün, grün, rot, etc.
Hat jemand eine Idee ob es dafür eine Formel gibt, oder wie man das mit VBA hinbekommen kann?
Ist was für Tüfftler :-)
Gruß Siggi

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
KKLEINSTE
04.07.2020 10:46:19
lupo1
A002[:B011]: =RUNDEN(ZEILE(A1)*100/10;) und blau
A012[:B061]: =RUNDEN(ZEILE(A1)*100/50;) und grün
A062[:B094]: =RUNDEN(ZEILE(A1)*100/33;) und gelb
A095[:B101]: =RUNDEN(ZEILE(A1)*100/07;) und rot
D002[:D101]: =INDEX(B$2:B$101;REST(KKLEINSTE(A$2:A$101+(ZEILE(A$2:A$101)-2)%;ZEILE(A1));1)/1%+1)
AW: KKLEINSTE
04.07.2020 11:05:53
Siggi
Danke für die schnelle Antwort.
In welchen Zellen stehen denn dann die Werte für rot, blau etc. und wo die Gesamtsumme?
Anzeige
Denke bitte selbst darüber nach (!) ...
04.07.2020 11:16:39
lupo1
... und ich wüsste nicht, wo Du nach einer Gesamtsumme gefragt hättest.
Bist Du denn in der Lage, diese Anleitung anzuwenden? Links (A2 ...) steht immer die Formel und rechts (B2 ...) die Farbe, falls das jetzt zu schwierig war.
AW: Denke bitte selbst darüber nach (!) ...
04.07.2020 11:25:19
Siggi
Ich denke ich habe deine Antwort so übertragen wie du es gemeint hast:
Zelle A2 bis A11: deine erste Formel
Zelle B2 bis B11: "blau" eingegeben
Zelle A12 bis A61: deine 2te Formel
Zelle B12 bis B61: "grün" eingegeben
usw.
Dann in Zelle D2 deine Indexformel und runtergezogen bis D101
Was in Zelle A1 reinkommt habe ich nicht verstanden.
Ansonsten zeigt er in Zelle D2 das Ergebnis "blau", in allen darunter liegenden Zellen aber #Zahl!
Also etwas stimmt noch nicht
Anzeige
office-hilfe.com/support/showthread.php/33843
04.07.2020 11:35:29
lupo1
Wenn A1 nicht genannt ist, dann ist es leer oder wird nicht benötigt.
Ich habe eine Excelversion (365), wo man D2: nicht mehr als {}-Formel eingeben muss. Das vergesse ich mehr und mehr, Besitzern älterer XL-Versionen zu sagen. Sorry dafür. Schließe die Formel also als Matrixformel ab.
__________________________
Da allgemeines Problem (vielen Dank dafür!), habe ich mich angeregt gefühlt.
http://www.office-hilfe.com/support/showthread.php/33843
Denkbare Erweiterung: Man gibt nur noch 10-50-33-7 irgendwo ein, und die Verteilung wird ohne weiteres gelistet (Default: A-B-C-D).
Anzeige
AW: office-hilfe.com/support/showthread.php/33843
04.07.2020 18:54:28
Siggi
Hi Lupo, super klappt alles Bestens.
In deiner Matrixformel steht irgendwo A1. A1 ist aber gar nicht belegt mit einem Wert.
Es soll m.E. nur sagen, dass der Wert 1 ist (also Zeile(A1) ist ja 1). Daher auch kein Wert, richtig?
Noch einmal: Es gibt kein A1. Da guckst Du falsch
04.07.2020 18:59:33
lupo1
Was es gibt, ist =ZEILE(A1).
Das ist eine Laufvariable, was man als Neuling erst beim Herunterkopieren merkt. Laufvariablen sind das EDV-A-und-O in der gesamten Computerwelt.
=ZEILE(SAT1) wäre genau das gleiche.
Mit SPALTE() geht das auch.
AW: Noch einmal: Es gibt kein A1. Da guckst Du falsch
04.07.2020 19:35:04
Siggi
OK
Wenn ich nun meine Tabelle erst in der Zeile 7 beginnen würde, dann müsste ich doch nur die Bereiche anpassen (ab Zeile 7) und in der Indexformel statt -2 eine -7 angeben, oder?
Anzeige
Ja.
04.07.2020 19:37:14
lupo1
AW: Ja.
04.07.2020 20:41:42
Siggi
nur zur Info:
Am Ende der Formel muss ich dann noch Zeile(A1), hat sich durch das einfügen von 5 Zeilen auf Zeile(A6) geändert, wieder auf Zeile(A1) ändern.
Danke für die Auflösung meines Problems lieber lupo1.
Erfahrungsaustausch: du hast sehr viel Wissen und solltest deine Antwortweise etwas optimieren.
Zum Beispiel durch mehr Erklärungen warum du in einer Formel ein bestimmten Wert/Bereich wählst. Dann wärest du perfekt. Aber wer ist das schon.
Natürlich hast du Recht, das Mitdenken erforderlich ist.
Das Problem haben wir jedenfalls gemeinsam gelöst und dafür gebührt dir mein Dank.
Ich hoffe der Abschluss und die Kommentierung ist auch in deinem Sinne. Meinen Respekt hast du.
Gruß Siggi
Anzeige
Es war original an Deine Vorlage angelehnt:
05.07.2020 09:49:34
lupo1
"Warum habe ich mit den 100 Daten in Zeile 2 statt 1 begonnen?"
Das macht man (oder kann man machen), damit man noch eine Überschrift setzen könnte, die die Daten dann
pivot-,
autofilter- oder
spezialfilterfähig machen würde. Oder zur vollwertigen
Intelligenten Tabelle (Strg-L oder Strg-T) gewandelt werden könnte.
Oder, statt oder neben Überschrift:
Damit ein Startbezug auf eine Vorzeile möglich wäre, was bei Beginn in A1 mit Nur-Zellformeln nicht geht. Kommt sehr oft vor.
Peter Haserodt geht da noch weiter, und beginnt grundsätzlich bei Zeile 4. Achtung: Dies ist eine Behauptung aus der bloßen Erinnerung des beendeten Online-Excel-Forums und kann daher altersentsprechend unzutreffend sein.
Um nicht ZEILE(A2:A101)-2 schreiben zu müssen, ginge auch ZEILE(A2:A101)-ZEILE(A2). Dann muss man die Konstante nicht händisch anpassen. In neuem Excel sehr kommod: SEQUENZ(100;;0).
Anzeige
Nur mit 1 Formel dank xl365 nun dort verwirklicht
04.07.2020 14:05:10
lupo1
AW: Aufteilung mit nur 1ner Formel ohne XL365 ...
06.07.2020 19:47:32
neopa
Hallo Siggi,
... Deine Aufgabenstellung, auf die ich erst sehen konnte, hat mich auch interessiert u.a. auch wegen lupos letztem Beitragsbetreff. Hab mir bis jetzt auch bewusst nicht seine Lösungsvorschläge angesehen (hab sowieso nur XL2010 und 2016 im Einsatz).
Meine nachstehende Lösungsformel kann dynamisch bis zu 8 Datenwerte aufteilen und kommt dabei ganz ohne den klassischen Matrixformabschluss aus.
Die Formel in E2 einfach weit genug ziehend nach unten kopieren. In meinem Beispiel hab ich der Darstellung hier im Forum wegen, auch die jeweilige Anzahl bewusst klein gehalten. Aber getestet habe ich sie natürlich auch für Dein Beispiel.
Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDE
1DatenAnzahl28 Listing
2blau3  grün
3gelb7  gelb
4grün9  grün
5orange   gelb
6beige4  grün
7rot5  rot
8    gelb
9    grün
10    rot
11    gelb
12    beige
13    grün
14    rot
15    gelb
16    beige
17    grün
18    rot
19    gelb
20    beige
21    grün
22    blau
23    rot
24    gelb
25    beige
26    grün
27    blau
28    grün
29    blau
30     
31     

ZelleFormel
C1=SUMME(B:B)
E2=WENN(ZEILE(E1)&gtC$1;"";INDEX(A:A;AGGREGAT(15;6;ZEILE(A$2:A$9)/(ZÄHLENWENN(E$1:E1;A$2:A$9)+C$1/B$2:B$9-(ZÄHLENWENN(E$1:E1;A$2:A$9)&ltB$2:B$9)*C$1=AGGREGAT(15;6;ZÄHLENWENN(E$1:E1;A$2:A$9)+C$1/B$2:B$9-(ZÄHLENWENN(E$1:E1;A$2:A$9)&ltB$2:B$9)*C$1;1));1)))
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Gruß Werner
.. , - ...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige