Microsoft Excel

Herbers Excel/VBA-Archiv

@Ewald: Datensatz

Betrifft: @Ewald: Datensatz von: Larry Sanders
Geschrieben am: 02.09.2014 18:27:43

Hi Ewald,

leider ist mein Thread hier irgendwie verschwunden.

Ich habe jeddoch den kompletten Datensatz der 72 Bögen.

Ich schaffe es einfach nicht, 18 komplett verschiedene Bögen herauszufiltern. Heisst, wenn ich mir 18 Bögen raussuche, dass keiner von Bogen 18 auf den Bögen 1-17 vorhanden ist.

Ich lad mal den Datensatz hier hoch. Vielleicht kannst du mir ja helfen.
https://www.herber.de/bbs/user/92445.xlsx

  

Betrifft: AW: @Ewald: Datensatz von: Ewald
Geschrieben am: 03.09.2014 11:32:18

Hallo Larry,

führe mal die drei folgenden Makros der Reihe nach aus

Sub auslesen()
Dim x
         Dim arrErg
         Dim Dic As Object
         Dim myarr
         
         myarr = Range(Cells(1, 2), Cells(72, 8))
         Set Dic = CreateObject("Scripting.dictionary")
         
         For Each x In myarr
             Dic(x) = 0
         Next
         
         arrErg = WorksheetFunction.Transpose(Dic.Keys)
         Cells(1, 10).Resize(UBound(arrErg, 1) - LBound(arrErg, 1) + 1, 1).Value = arrErg
End Sub

Sub suchen()
Dim c
Dim i
For i = 1 To 176
For Each c In [B1:H72]
    If c.Value = Cells(i, 10).Value Then
        c.Interior.ColorIndex = 4
        Exit For
    End If
Next
Next i
End Sub

Sub zählen()
Dim c
Dim i
For Each c In [B1:H72]
    If c.Interior.ColorIndex = 4 Then
        i = i + 1
    End If
Next
Cells(3, 11).Value = i
End Sub
Nach dem ersten Makro nur die Spalte J aufsteigend sortieren und die zwei anderen Makros starten.

In K3 siehst du die Anzahl eindeutiger Werte (176)

Im Zahlenbereich siehst das nur 2 Bögen die nur eindeutige Werte haben (Bogen 1 + 9)

Aus den Werten läßt sich erkennen das wahrscheinlich ab 219 die Stadiensticker sind (viermal vorhanden)

Gruß Ewald


  

Betrifft: AW: @Ewald: Datensatz von: Larry Sanders
Geschrieben am: 03.09.2014 12:02:39

ALso, ich weiß nicht, ob ich es richtig gemacht habe (noch nie mit makros gearbeitet), doch wurden mir die zeilen 1 und 9 komplett in farbe angezeigt.

ich weiß aber nicht was das mir bringt. wie du meintest sind 219 bis 236 die Stadien. DAs stimmt.

Wie kriege ich nun raus ob es 18 komplett verschiedene gibt. Damit ist es ja noch nicht getan.


  

Betrifft: AW: @Ewald: Datensatz von: Ewald
Geschrieben am: 03.09.2014 19:16:24

Hallo Larry,

es gibt nur 2 Bögen die nur eindeutige Sticker haben. Bogen1 und Bogen9.

Damit kannst du dann auch keine 18 Bögen bekommen.

Habe dir mal eine Datei gemacht, kannst ja mal testen ob eine Möglichkeit paßt

https://www.herber.de/bbs/user/92469.xlsm

Gruß Ewald


  

Betrifft: AW: @Ewald: Datensatz von: Larry Sanders
Geschrieben am: 03.09.2014 20:26:06

Hi ewald, ich weiß nicht ob ich einen denkfehler habe oder ich es noch nicht ganz rübergebracht habe.

Es geht ja nicht darum, 2 bögen zu finden, die komplett von allen anderen verschieden sind, sondern 18 von 18.

Es müssen auch nicht alle 72x7 sticker verbaucht werden in den 18 bögen. Wenn es nummern gibt, die auf einem der 72 bögen sind, aber nicht in den ausgewählten 18 ist das kein problem. Die fehlenden würden dann bestimmt über die 8er bögen kommen.

Somit macht das keinen sinn für mich das mit den 2 bögen 1 und 9.

Man müsste quasi von bogen 1-4 einen bogen auswählen. Dann einen bogen aus 5-8 und so weiter. Und immer beim auswählen darauf achten, das kein sticker schon auf den ausgewählten bogen vorher war.


  

Betrifft: AW: @Ewald: Datensatz von: Christian
Geschrieben am: 04.09.2014 18:25:43

Hallo Larry,
wenn ich dich richtig verstanden habe, dann im Prinzip so:
1: erstelle alle möglichen Kombinationen aus 18 Gruppen mit jeweils 4 Bögen (ergibt 418, also ca. 68 Milliarden Kombinationen)
Bsp:
1-5-9-13- ... 57-61-65-69
1-5-9-13- ... 57-61-65-70
1-5-9-13- ... 57-61-65-71
1-5-9-13- ... 57-61-65-72
1-5-9-13- ... 57-61-66-69
1-5-9-13- ... 57-61-66-70
1-5-9-13- ... 57-61-66-71
1-5-9-13- ... 57-61-66-72
1-5-9-13- ... 57-61-67-69
...
1-5-9-13- ... 57-62-65-69
usw. bis:
4-8-12-16-... 60-64-68-72

2: prüfe für jede Kombination die Anzahl an Bögen, deren Nummern nicht mehrfach vorkommen.
3: merke dir jeweils nur die Kombinationen, deren Anzahl maximal ist.
4: Als Ergebnis erhälst du eine Liste aller Kombinationen mit max. Anzahl an untersch. Nummern. Im günstigsten Fall ist das nur eine Kombination, im ungünstigsten Fall enthält die Liste 68 Milliarden Eintrage.

Wenn du hier einen effizienten Algorithmus entwickelst, dann lässt sich das Optimum wahrscheinlich auch noch in vertretbarer Zeit (ggf. einige Minuten) ermitteln.

Grüße
Christian


  

Betrifft: AW: @Ewald: Datensatz von: Ewald
Geschrieben am: 04.09.2014 20:35:13

Hallo Larry,

das wird dir nicht gelingen, das liegt hauptsächlich daran das in den unteren Bögen überwiegend Dubletten sind.

10 unterschiedliche Bögen gibt es aber 1,6,9,16,19,22,31,35,49,68

Gruß Ewald


  

Betrifft: AW: @Ewald: Datensatz von: Ewald
Geschrieben am: 05.09.2014 00:19:10

Hallo Larry,

hier mal eine Übersicht für 126 Sticker.

die ersten 10 Bögen die sich vollkommen unterscheiden wurden gesetzt, danach wurden Zeile für Zeile alle 72 Bögen per Schleife durchlaufen. Nach einem Durchlauf wurde dann jeweils um eine Spalte reduziert.

Die Stadionpicker 232/236 wurden manuell hinzugefügt, da die Bögen die diese beinhalten nur doppelte Sticker enthalten.

 ABCDEFGH
1Bogen 143366116124205219
2Bogen 61122120172193208220
3Bogen 910326271134151221
4Bogen 16576490105175210222
5Bogen 191234137178197211223
6Bogen 223067138181192212224
7Bogen 31254865119176215226
8Bogen 355572100129152199227
9Bogen 498478093153204231
10Bogen 681852125184202217235
11Bogen 10265981132156187 
12Bogen 23455877121154213 
13Bogen 14244088102162  
14Bogen 634698127150168 234
15Bogen 43170117143   
16Bogen 21144476126   
17Bogen 526878112136   
18Bogen 33284360    
19Bogen 39415686   228
20Bogen 1254118     
21Bogen 433591    229
22Bogen 45949    230
23Bogen 5936     233
24Bogen 2716     225
25manuell      232
26manuell      236
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Gruß Ewald


  

Betrifft: AW: @Ewald: Datensatz von: Larry Sanders
Geschrieben am: 05.09.2014 10:48:14

Hi ewald, vielen dank für die super ausführung. Hm, das ist ja echt schade.

Und andere kombinationen wurden ebenfalls getestest im durchlauf? Kann ja sein, dass es auch andere 10 bögen gibt, die komplett unterschiedlich sind und es dann wietere dszu passend gibt?! Oder wars das?


  

Betrifft: Kombinationen mit Bedingung von: Christian
Geschrieben am: 05.09.2014 23:57:13

Hallo Ewald und Larry,
es gibt aber auch noch diverse Kombinationen mit mehr als 10 kompletten Bögen.

Betrachtet man nur mal die ersten 44 Bögen (11 Gruppen à 4 Bögen), findet man dort schon 60 verschiedene Kombinationen mit 11 kompletten Bögen.
Und bei den ersten 48 Bögen (12 Gruppen à 4 Bögen) gibt es immer noch 30 verschiedene Kombinationen mit 12 kompletten Bögen ...

Gruß
Christian


  

Betrifft: AW: Kombinationen mit Bedingung von: Larry Sanders
Geschrieben am: 06.09.2014 10:31:52

Hi christian, kannst du das evtl nochmal genauer ausführen?

Eventuell kannst du ja mal schrieben, welche bögen sich unterscheiden?


  

Betrifft: AW: Kombinationen mit Bedingung von: Christian
Geschrieben am: 06.09.2014 17:28:41

Hallo Larry,
in einem ersten Ansatz bin ich nach der "Brute-Force-Methode" vorgegangen und habe alle Kombinationen durchlaufen und jeweils die Zahlen der Kombination auf Eindeutigkeit geprüft.
Bei 12 Gruppen à 4 Bögen sind das ca. 16 Mio Kombinationen. Ein nur grob entwickeltes Script brauchte dafür ca. 15 Minuten. Auf 18 Gruppen hochgerechnet würde es dann 4096 mal länger laufen, sprich 42 Tage.
"Brute-Force" ist also keine gute Idee.

Wie in meiner ersten Antwort schon gesagt, wäre dein Aufgabe hier einen effizienten und schnellen Algorithmus zu entwicken.

Gruß
Christian


  

Betrifft: AW: Kombinationen mit Bedingung von: Ewald
Geschrieben am: 08.09.2014 13:59:19

Hallo,

soviel Kombinationen gibr es gar nicht

Die Bögen sind so aufgeteilt das 4 Bögen das gleiche Stadionsticker haben. Bezeichnet man jetzt jeweils diese 4 Bögen als Gruppe,so gibt es 18 Gruppen (72/4). Da aus jeder Gruppe aber jeweils nur ein Bogen verwendet werden kann,gibt es auch nur insgesamt 18 Bögen die verschieden sein können.

Insgesamt ergeben sich so =Kombinationen(18;4) 3060 Kombinationen.

Da aber die unteren Bögen aus doppelten Stickern bestehen(außer dem Stadionsticker) schränkt sich die Anzahl Bögen und damit auch die Anzahl Kombinationen ein.

18 total verschiedene Bögen sind also nicht möglich.

Die ersten 7 Bögen wurden gefunden,in dem jeweils Zeilen einer Gruppe geändert wurden.

Die anderen wurden dann gefunden,indem eine Schleife immer einen der Bögen anfügte und auf doppelte überprüft wurde.

Gruß Ewald


 

Beiträge aus den Excel-Beispielen zum Thema "@Ewald: Datensatz"