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

Spalten gleichmäßig sortieren

Spalten gleichmäßig sortieren
18.07.2019 15:01:50
Alex
Hallo zusammen :)
ich steh vor einem scheinbar unlösbaren Problem zumindest für mich :) ich habe jetzt schon viel ausprobiert aber bin noch auf keinen grünen Zweig gekommen. Vlt hat ja jemand von euch grade zufällig Zeit und Lust sich mit diesem Problem zu beschäftigen. Ich wäre sehr dankbar......wirklich sehr...
Also...
Ich habe eine Spalte A mit folgen Werten untereinander:
DE
DE
F
F
F
GB
GB
GB
GB
CH
Entweder per Formel oder durch VBA würde ich nun gerne erreichen, dass die Spalte die Werte gleichmäßig verteilt. Im diesem Beispiel wäre das Ergebnis dann ungefähr so:
GB
F
DE
GB
F
CH
GB
DE
F
GB
Hat jemand eine Idee wie man das machen könnte?
Viele Grüße und Danke im Voraus
Alex

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten gleichmäßig sortieren
18.07.2019 16:53:39
mmat
Hallo,
ein "ungefähr so" ist eigentlich ein wenig unscharf für ein Programm. Du hast da 10 Werte, dafür gibt's 10! (sprich 10 Fakultät) unterschiedliche Reihenfolgen. Welche hättest du denn gerne?
Was fehlt ist ein Regelwerk oder zumindest ein Ansatz wie das Zielbild aussehen soll. Eine Regel könnte z. B. aussagen, das "möglichst nie 2 gleiche Werte aufeinanderfolgen sollen".
vg, MM
AW: Spalten gleichmäßig sortieren
19.07.2019 09:03:29
Alex
Hi MM,
danke für deine Antwort, genau das ist mein Problem mir ist das Regelwerk nicht ganz klar. Ich hab geschrieben "ungefähr so" weil es nie komplett logisch richtig sein kann, wenn es sich um eine gerade Anzahl an Werten handelt. Beispiel wenn es insgesamt 9 Werte sind und dabei "DE" einmal vorkommt dann muss "DE nach der Sortierung an 5. Stelle stehen. Folglich sind 4 Werte vor "DE und 4 Werte danach. Das meinte ich mit gleichmäßig verteilen.
Wenn alle Werte über die Spalten gleichmäßig verteilt werden, dann können niemals 2 gleiche Werte aufeinander Folgen. Wie du in meinem Ergebnis sieht hab ich versucht alle Werte gleichmäßig zu verteilen. GB gibt es 4 mal, wie du siehst ist GB gleichmäßig verteilt bevor wieder ein GB kommt sind immer 2 andere Werte dazwischen. Bei F klappt das nicht mehr so gut weil es F 3mal gibt. Hier sind einmal 3 Werte dazwischen ansonsten auch 2 Werte. Verstehst du was ich meine? wie kann ich dem System so etwas beibringen......
Danke für deine Mühe!
Grüße
Alex
Anzeige
AW: Spalten gleichmäßig sortieren
19.07.2019 13:20:33
mmat
probier das mal
Option Explicit
Type wert
art As String
rest As String
End Type
Sub WerteMischen()
Dim werte(4) As wert, sum As Long, n As Long, p As Long, s As String, a
sum = 0
werte(1).art = "GB"
werte(1).rest = 4
sum = sum + 4
werte(2).art = "F"
werte(2).rest = 3
sum = sum + 3
werte(3).art = "DE"
werte(3).rest = 2
sum = sum + 2
werte(4).art = "CH"
werte(4).rest = 1
sum = sum + 1
p = 1: s = ""
For n = 1 To sum
While (werte(p).rest) = 0
p = p + 1: If p > 4 Then p = 1
Wend
s = s + werte(p).art + ";"
werte(p).rest = werte(p).rest - 1
p = p + 1: If p > 4 Then p = 1
Next
a = Split(s, ";")
Range("A1:A" + CStr(sum)) = WorksheetFunction.Transpose(a)
End Sub
vg, MM
Anzeige
AW: Spalten gleichmäßig sortieren
22.07.2019 11:06:06
Alex
Hi MM,
wow vielen Dank das ist wirklich mega! das funktioniert schon so gut, dass ich es eigentlich verwenden kann cool danke!!!! das einzige was mir beim testen aufgefallen ist ist, dass ein Wert nur so lang gleichmäßig verteilt wird, so oft es ihn gibt von Zeile 1 nach unten. Wenn es aber einen Wert nur sehr selten gibt, kommt er beispielsweise nur in der ersten Hälfte vor. Verstehst du was ich meine? Wenn die Anzahl aller Werte größer wird, dürfen gegen Ende der Reihe nicht nur noch die gleichen Werte kommen, diese hätten dann schon am Anfang öfter vorkommen müssen obwohl quasi noch nicht alle Werte die noch einen Rest haben gezeigt wurden.
Erhöhe ich die Anzahl GB auf 10..dann zeigt dein Marko:
GB
F
DE
CH
GB
F
DE
GB
F
GB
GB
GB
GB
GB
GB
GB
Richtiger wäre jedoch:
GB
F
GB
DE
GB
F
GB
CH
GB
DE
GB
F
GB
GB
GB
GB
Kann man das noch so optimieren? Danke schon mal falls du noch ne Idee hast :)
VG Alex
Anzeige
AW: Spalten gleichmäßig sortieren
23.07.2019 11:10:17
mmat
Hallo,
danke für die Rückmeldung.
Das Werte die sehr häufig vorkommen, am Ende dann auch häufig wiederholt werden, ist dem Algorithmus geschuldet, der einfach alles nach dem Prinzip "so lange der Vorrat reicht" abarbeitet.
Spontan fällt mir jetzt nix ein, wie man damit die Verteilung häufiger Werte verbessern könnte. Das scheint aber wesentlich aufwändiger zu werden.
vg, MM

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige