XL XP
Es geht hier um eine Ermittlung der Lottozahlen, die wie oft zusammen
gezogen wurden.
Im Blatt "Ziehungen" im Bereich C2:H2694 stehen die 6 gezogenen Lottozahlen,
für jede Ziehung jeweils in einer Zeile.
Ich habe mir ein Blatt "Auswertung" erstellt mit einer Matrix:
In der Zeile 2 von C2 bis AY2 stehen die Zahlen vn 1 bis 49 und in der
Spalte B von B3 bis B59 stehen auch die Zahlen 1 bis 49.
Wie kann ich jetzt mit einer Formel (oder auch mit VBA) das Blatt
"Ziehungen" Zeilenweise nach den einzelnen Kombinationen berechnen.
Z.B. sollte in der Zelle M6 eine 35 erscheinen:
B6 = 4
M2= 11
und die Zahl 4 in Verbindung mit der Zahl 11 wurde insgesamt 35 mal gezogen.
Ich hoffe Ihr versteht was ich machen möchte.
MfG
Peter
Hallo Peter,
du suchst die Häufigkeit von Zahlenzwillingen. Hier mal etwas
"Spaghetti-"VBA. Die Auswertung erfolgt im Blatt Ziehungen. Das Ergebnis
wird nach Auswertung kopiert.
Gruß
Klaus
Option Explicit
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim m As Integer
Dim n As Integer
Sub Lotto()
Sheets("Ziehung").Select
Range("U2:BQ50").Select
Selection.ClearContents
For i = 2 To 2694
For j = 1 To 5
m = Cells(i, 2 + j)
If Cells(i, 2 + j) = "" Then GoTo ende
For k = j + 1 To 6
n = Cells(i, 2 + k)
Cells(m + 1, n + 20) = _
Cells(m + 1, n + 20) + 1
Cells(n + 1, m + 20) = _
Cells(n + 1, m + 20) + 1
Next
Next
Next
ende:
Sheets("Ziehung").Select
Range("U2:BQ50").Select
Selection.Copy
Sheets("Auswertung").Select
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Am Sat, 30 Sep 2006 01:51:23 +0200 schrieb Klaus "Perry" Pago:
> Hallo Peter,
> du suchst die Häufigkeit von Zahlenzwillingen. Hier mal etwas
> "Spaghetti-"VBA. Die Auswertung erfolgt im Blatt Ziehungen. Das Ergebnis
> wird nach Auswertung kopiert.
[Code ausgeschnitten]
heute haben wir es einmal umgekehrt gemacht. Während du VBA-Code
geschrieben hast, habe ich versucht die 2401 Matrix-Formeln zu
beschleunigen. Aber bei dieser Menge hat VBA eindeutig einen Vorteil.
Deinen Code habe ich aber auch noch etwas beschleunigen können:
Sub Lotto()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim m As Integer
Dim n As Integer
Dim LRow As Long
With Sheets("Ziehungen")
LRow = .Cells(Rows.Count, 3).End(xlUp).Row
For i = 2 To LRow
For j = 1 To 5
m = .Cells(i, j + 2)
For k = j + 1 To 6
n = .Cells(i, 2 + k)
.Cells(m + 1, n + 20) = _
.Cells(m + 1, n + 20) + 1
.Cells(n + 1, m + 20) = _
.Cells(n + 1, m + 20) + 1
Next k
Next j
Next i
.Range("U2:BQ50").Copy _
Destination:=Sheets("Auswertung").Range("C3")
.Range("U2:BQ50").ClearContents
Application.CutCopyMode = False
End With
End Sub
--
Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
"Claus Busch" <claus...@nospam.de> schrieb im Newsbeitrag
news:1i22my5tcgldr.4...@40tude.net...
> heute haben wir es einmal umgekehrt gemacht. Während du VBA-Code
> geschrieben hast, habe ich versucht die 2401 Matrix-Formeln zu
> beschleunigen. Aber bei dieser Menge hat VBA eindeutig einen Vorteil.
> Deinen Code habe ich aber auch noch etwas beschleunigen können:
[snip]
nichts ist so gut, dass es nicht noch verschlimmbessert werden kann :)
fine work
Klaus
Hallo Peter,
es geht ausser mit VBA auch mit folgender Matrixformel:
C3:
=WENN(C$2=$B3;"";SUMME(WENN(MMULT((Ziehungen!$C$2:$H$3000=C$2)+(Ziehungen!$C$2:$H$3000=$B3);{1;1;1;1;1;1})=2;1;0)))
als Matrixformel mit STRG+SHIFT+RETURN abschliessen und bis AY51 kopieren.
Die Beschriftung der Auswertungsmatrix ist für die Zahlenpaarermittlung
notwendig. Die Auswertungszeit mit der Formel betrug bei mir mit ca 2.500
Ziehungen < 1 Minute.
Gruß
Klaus
Am Sat, 30 Sep 2006 03:35:09 +0200 schrieb Klaus "Perry" Pago:
> nichts ist so gut, dass es nicht noch verschlimmbessert werden kann :)
> fine work
ich habe die VBA-Lösung von Klaus optisch noch etwas verändert. Vom Code
her, passt sie sich der jeweiligen Tabellengröße an, muss also nach Eingabe
neuer Lottozahlen nur nochmals aufgerufen werden. Die Auswertung erfolgt
nun direkt auf dem Blatt Auswertungen. Die häufigsten Kombinationen werden
farblich hinterlegt.
http://www.claus-busch.de/Lotto_VBA.xls
Beim stöbern in dieser NG bin auf diesen Beitrag gestossen.
Ich habe die Mappe auf meinem PC gespeichert um das VBA Script genauer
anzuschauen.
Ich war einegermasen erstaunt, das die Datei beim öffnen keine
Makrowarnung ausgegeben hat obwohl VBA drinn ist.Bei Mappen mit VBA
das ich selber erstelle komt die Warnung jedesmal.
Mich würde intressieren wie du das gemacht hast.
Gruss Rudolf
"Claus Busch" <claus...@nospam.de> schrieb im Newsbeitrag
news:17t0cwez7fw28.19gltuoy3zmcm$.dlg@40tude.net...
Am Sat, 30 Sep 2006 17:06:02 +0200 schrieb Rudolf Hänni:
> Hallo Claus,
>
> Beim stöbern in dieser NG bin auf diesen Beitrag gestossen.
> Ich habe die Mappe auf meinem PC gespeichert um das VBA Script genauer
> anzuschauen.
> Ich war einegermasen erstaunt, das die Datei beim öffnen keine
> Makrowarnung ausgegeben hat obwohl VBA drinn ist.Bei Mappen mit VBA
> das ich selber erstelle komt die Warnung jedesmal.
> Mich würde intressieren wie du das gemacht hast.
weil ich nicht dauernd von diesen Warnungen genervt werden will, habe ich
mir eine Digitale Signatur erstellt. Beim Hochladen habe ich vergessen,
diese zu deaktivieren. normal dürfte sie aber nur auf dem eigenen PC
funktionieren. Wieso bei dir die Warnung nicht kam, weiß ich nicht. Jetzt
habe ich die Signatur entfernt und die Datei wieder hochgelanden. Kannst ja
mal probieren, ob du jetzt eine Warnung erhältst.
Du kannst dir auch eine Digitale Signatur erstellen, um sie dann im
VB-Editor unter Extras => Digitale Signatur dem Projekt zuzuordnen, damit
bei dir die Warnungen aufhören. Suche dazu nach der Datei SelfCert. Öffne
sie und folge dem Assistenten.
Rudolf Hänni schrieb am 30.09.2006
> Ich war einegermasen erstaunt, das die Datei beim öffnen keine
> Makrowarnung ausgegeben hat obwohl VBA drinn ist.Bei Mappen mit VBA
> das ich selber erstelle komt die Warnung jedesmal.
> Mich würde intressieren wie du das gemacht hast.
Claus hat die Mappe mit einer digitalen Signatur versehen, die es
ermöglicht Dateien ohne Makro-Warnung zu öffen, wenn diese Signatur den
vertrauenswürdigen quellen hinzugefügt worden ist.
Du hast offenbar bereits einmal eine so signierte Mappe von Claus geöffnet
und den Haken gesetzt bei [x] 'Makros aus dieser Quelle immer vertrauen'.
Du selbst kannst ebenfalls per SelfCert eine Signatur für dich selbst
erzeugen und genau gleich verwenden. Eine Anleitung dazu findet Du hier:
http://excelabc.de/excel/et/excel.php?Seite=et00006
Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2000 SP-3]
Microsoft Excel - Die ExpertenTipps
Am Sat, 30 Sep 2006 17:36:53 +0200 schrieb Thomas Ramel:
> Claus hat die Mappe mit einer digitalen Signatur versehen, die es
> ermöglicht Dateien ohne Makro-Warnung zu öffen, wenn diese Signatur den
> vertrauenswürdigen quellen hinzugefügt worden ist.
>
> Du hast offenbar bereits einmal eine so signierte Mappe von Claus geöffnet
> und den Haken gesetzt bei [x] 'Makros aus dieser Quelle immer vertrauen'.
das mit der vertrauenswürdigen Quelle wäre natürlich eine Erklärung. Ich
bin zwar hier nicht mehr unbekannt und will den Fragenden nichts Böses,
sondern will nur helfen. Trotzdem sollte man nicht so vertrauensselig sein.
Claus Busch schrieb am 30.09.2006
> Hallo Thomas, hallo Rudolf,
>
> Am Sat, 30 Sep 2006 17:36:53 +0200 schrieb Thomas Ramel:
>
>> Claus hat die Mappe mit einer digitalen Signatur versehen, die es
>> ermöglicht Dateien ohne Makro-Warnung zu öffen, wenn diese Signatur den
>> vertrauenswürdigen quellen hinzugefügt worden ist.
>>
>> Du hast offenbar bereits einmal eine so signierte Mappe von Claus geöffnet
>> und den Haken gesetzt bei [x] 'Makros aus dieser Quelle immer vertrauen'.
>
> das mit der vertrauenswürdigen Quelle wäre natürlich eine Erklärung. Ich
> bin zwar hier nicht mehr unbekannt und will den Fragenden nichts Böses,
> sondern will nur helfen. Trotzdem sollte man nicht so vertrauensselig sein.
Ich hab den Haken beim öffnen deiner Mappe jedenfalls nicht gesetzt, was
aber, wie Du wissen wirst, nicht gegen dich gerichtet ist.
Der einzige dem ich diesbezüglich das 'Vertrauen ausgesprochen' habe' bin
ich selber - obschon ich manchmal daran zweifle ob das richtig war ;-)))
die Makros und die Formel funktionieren wunderbar.
Sollte ich doch mal den ganz großen Treffer landen melde ich mich noch
einmal ;-))
Danke und Gruß
Peter
"Klaus "Perry" Pago" <pe...@dachs.ping.de> schrieb im Newsbeitrag
news:Oz1MPKI5...@TK2MSFTNGP03.phx.gbl...
Dann drücken wir dir mal ganz fest die Daumen :)
Gruß
Klaus
Ich habe die Datei einmal auf meinem PC zuhause und einmal auf dem PC
im Geschäft geöffnet. Der PC im Geschäft wurde gestern neu aufgesetzt
weil ich in einer neuen Abteilung angefangen habe. Trotzdem kam an
beiden Orten kam keine Makrowarnung.
Ich habe auf beiden PC's keine Haken gesetzt um irgend einer Signatur
vertrauen, nicht mal meiner eigenen. Deshalb war ich ja so erstaunt!!
Woran dass liegt, keine Ahnung!
Gruss Rudolf
"Claus Busch" <claus...@nospam.de> schrieb im Newsbeitrag
news:m0shiwz6l3gw$.etis2mpxc3t4.dlg@40tude.net...