Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Gleichverteilung

Forumthread: 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
Anzeige

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)
Anzeige
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?
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.
Anzeige
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.
Anzeige
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?
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
;
Anzeige

Infobox / Tutorial

Gleichverteilung in Excel: So gelingt es


Schritt-für-Schritt-Anleitung

Um eine Gleichverteilung in Excel zu erstellen, folge diesen Schritten:

  1. Daten vorbereiten: Erstelle eine Tabelle mit den Farben und deren Häufigkeit. Zum Beispiel:

    • Blau: 10
    • Grün: 50
    • Gelb: 33
    • Rot: 7
  2. Formeln eingeben: In den Zellen A2 bis A11 füge die Formel für Blau ein:

    =RUNDEN(ZEILE(A1)*100/10;)

    In den Zellen A12 bis A61 für Grün:

    =RUNDEN(ZEILE(A1)*100/50;)

    Und so weiter für Gelb und Rot.

  3. Index-Formel verwenden: In Zelle D2 gib die folgende Formel ein und ziehe sie bis D101 nach unten:

    =INDEX(B$2:B$101;REST(KKLEINSTE(A$2:A$101+(ZEILE(A$2:A$101)-2)%;ZEILE(A1));1)/1%+1)
  4. Matrixformel anwenden: Wenn du Excel 365 verwendest, schließe die Formel als Matrixformel ab, indem du Strg + Shift + Enter drückst.


Häufige Fehler und Lösungen

  • Fehler #Zahl!: Dieser Fehler tritt auf, wenn die Formel nicht korrekt eingegeben wurde. Stelle sicher, dass du die richtigen Zellreferenzen verwendest und die Formeln richtig kopiert hast.

  • Falsche Werte in den Zellen: Überprüfe die Formel in Zelle A1. Wenn sie leer ist, kannst du sie einfach weglassen oder auf den Wert 1 setzen (=ZEILE(A1)).


Alternative Methoden

Eine alternative Methode zur gleichverteilten Anordnung ist die Verwendung von VBA. Hier ist ein grundlegendes Beispiel:

Sub Gleichverteilung()
    Dim Farben As Variant
    Dim Anzahl As Variant
    Dim i As Integer, j As Integer, k As Integer
    Dim Zelle As Range

    Farben = Array("Blau", "Grün", "Gelb", "Rot")
    Anzahl = Array(10, 50, 33, 7)

    For i = LBound(Farben) To UBound(Farben)
        For j = 1 To Anzahl(i)
            k = Int((100 - 1 + 1) * Rnd + 1)
            Cells(k, 1).Value = Farben(i)
        Next j
    Next i
End Sub

Dieses Skript füllt die Zellen in einer Spalte zufällig mit den angegebenen Farben.


Praktische Beispiele

Hier ist ein praktisches Beispiel zur besseren Veranschaulichung der Gleichverteilung in Excel:

Platz Farbe
1 Grün
2 Blau
3 Gelb
4 Grün
5 Rot
... ...
100 Grün

Das Ziel ist es, die Farben so anzuordnen, dass sie gleichverteilt vorkommen, ohne dass ein Platz doppelt belegt wird.


Tipps für Profis

  • Verwende die Funktion SEQUENZ(): In Excel 365 kannst du mit SEQUENZ(100;;0) eine Liste von 1 bis 100 erstellen, die dir bei der gleichverteilten Anordnung hilft.

  • Dynamische Anpassung: Wenn du die Anzahl der Farben ändern möchtest, stelle sicher, dass deine Formeln dynamisch sind. So kannst du die Anzahl in einer Zelle ändern und die Verteilung aktualisiert sich automatisch.


FAQ: Häufige Fragen

1. Wie kann ich die Gleichverteilung in älteren Excel-Versionen umsetzen?
In älteren Excel-Versionen kannst du die gleichen Formeln verwenden, allerdings musst du die Matrixformeln manuell eingeben (Strg + Shift + Enter).

2. Was mache ich, wenn die Zellen nicht die gewünschten Farben anzeigen?
Überprüfe deine Formeln und stelle sicher, dass die Referenzen korrekt sind. Teste die Formeln Schritt für Schritt, um den Fehler zu finden.

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