Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Contare le quartine singole eliminando le ripetute in archiv

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Contare le quartine singole eliminando le ripetute in archiv

Postdi ikwae » 16/04/18 22:29

Ciao a tutti, sono qui ancora a chiedere il vostro prezioso aiuto.

Per fare abbinamenti, di quartine del Lotto in ambi e terni, realizzo un archivio alla volta con
quartine che possono arrivare a poco meno di un milione di righe. Finito di realizzare l’archivio
le quartine vengono “filtrate” e di conseguenza diminuiscono notevolmente.
Rifaccio un’altro archivio di quartine e accodo le nuove quartine alle vecchie poi vengono tutte filtrate e
accodare alle precedenti e così di seguito fintanto che non trovo abbinamenti che coprono una maggiore
corrispondenza con l’estrazioni, in ambi e terni, che di volta in volta vengono sortite.

L’aiuto che cerco e di eliminare le quartine ripetute e contare/sommare quelle eliminate.
In rete ci sono tanti modi per eliminare i doppioni ma non sono riuscito a trovare quello che elimina
i dati ripetuti e nello stesso tempo li conteggia sia le quartine singole che le ripetute.

Quindi l’aiuto che cerco è una macro che elimina le quartine ripetute e nello stesso tempo deve
contare le quartine su tutto l’archivio. Mi spiego meglio la macro deve leggere la prima quartina nel
range L2:O(end) e confrontarla con tutte le altre se è unica scrive 1 a dx della quartina in colonna P:P
se invece ci sono dei doppioni ad esempio tre, scrive a dx della corrispettiva quartina e sulla colonna P:P,
il valore 3, cancellando le due quartine ripetute, non eliminando tutta la riga, ma solo le celle, tirandole su
dove ci sono le quartine ripetute. Poi legge la seconda quartina e come sopra per tutte le altre dell'archivio.
Penso che la difficoltà maggiore è quella di trovare un metodo che ultra velocizzi la macro visto la grande
mole di righe. Sono molto gradite anche delle info o indicazioni o link, se si conoscono, per il fai da te “anzi da me”. :oops:

Allego anche un file per eventuale prove.
Ringraziando anticipatamente tutti colore che mi aiuteranno. 73 ikwae

https://www.dropbox.com/s/yukc9479ova0g ... e.zip?dl=0
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 254
Iscritto il: 27/12/17 23:14

Sponsor
 

Re: Contare le quartine singole eliminando le ripetute in ar

Postdi Anthony47 » 17/04/18 02:05

Mi aspettavo fosse piu' veloce ma secondo me ti andra' bene lo stesso:
Codice: Seleziona tutto
Sub Macchec22()
Dim myDic As Object, myInd As Long, qCnt As Long
Dim wArr, oArr() As Integer, lastL As Long, myK As String
Dim I As Long, J As Long, cW As Long, myT As Single
'
cW = 4
'
myT = Timer
lastL = Cells(Rows.Count, "L").End(xlUp).Row
wArr = Range("L2").Resize(lastL - 1, cW).Value
ReDim oArr(1 To lastL, 1 To cW + 1)
Set myDic = CreateObject("Scripting.Dictionary")
For I = 1 To UBound(wArr)
If I Mod 10000 = 0 Then
    Debug.Print I, Timer
    DoEvents
End If
    myK = wArr(I, 1)
    For J = 2 To cW
        myK = myK & "_" & wArr(I, J)
    Next J
    If Not myDic.Exists(myK) Then
        qCnt = qCnt + 1
        myDic.Add (myK), qCnt
    End If
    myInd = myDic.Item(myK)
    oArr(myInd, cW + 1) = oArr(myInd, cW + 1) + 1
    For J = 1 To cW
        oArr(myInd, J) = wArr(I, J)
    Next J
'DoEvents
Next I
'
'Range("L2").Resize(lastL, cW + 1).ClearContents     'VEDI TESTO 1
Range("AA2").Resize(qCnt, cW + 1) = oArr            'VEDI TESTO 2
MsgBox ("Completato in (sec): " & Format(Timer - myT, "0.00"))
End Sub


NB: Al momento la macro scrive i risultati nelle colonne AA:AE, per consentire la verifica del risultato ottenuto; completata questa fase va scommentata la riga marcata 'VEDI TESTO 1 e modificata la successiva affinche' parta da L2 invece che AA2.

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 17787
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Contare le quartine singole eliminando le ripetute in ar

Postdi ikwae » 17/04/18 20:23

Gentilissimo Anthony innanzitutto chiedo immensamente scusa per la risposta tardiva :oops: :oops: questa mattina un imprevisto che non era previsto spero vivamente che non si ripeta più. Detto questo ti posso confermare che la macro che mi hai fatto è superiore ad ogni aspettativa visto il lavoro che deve fare quindi le prove che ho effettuato, per il giusto e naturale riscontro, una prova semplice ho copiato per tante volte 5 quartine (tutte uguali) e i risultati sono le 5 quartine con il valore delle volte ripetute. Sono unanime i valori sia in colonna AA che in colonna L ... poi ho inserito 1 milione, tondo, di quartine random e anche qui i valori su entrambe le colonne sono unanime con un tempo molto ma molto inferiore ai 60 secondi. Con poco meno di un milione di quartine uniche, ossia senza ripetizioni, ha impiegato ancora di meno. Sono molto contento e ringraziandoti del tuo generoso, cortese e molto apprezzato aiuto.
Cordialmente ikwae oltre a rinnovarti la spaghettata sui Navigli a Milano a te e a tutto il tuo Team de Forum
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 254
Iscritto il: 27/12/17 23:14


Torna a Applicazioni Office Windows


Topic correlati a "Contare le quartine singole eliminando le ripetute in archiv":


Chi c’è in linea

Visitano il forum: Nessuno e 69 ospiti