by....@gmail.com
2020-10-29 14:39:44 UTC
Ciao a tutti, devo fare una ricerca dati in un archivio, non è la ricerca il problema, ma la mole dei dati
Premetto che si tratta di Lotto, ho un archivio di 6 numeri dalla colonna E alla colonna J composto di 14000 righe quindi un archivio grande
ed alla colonne "A-B" degli ambi composti da 2 numeri e sono oltre 4000 righe.
ora dovrei scrorrere per ogni ambo tutto l'archivio e contare quante volte è comparso l'ambo.
questo già lo faccio con la seguente macro
Sub RicerceSenzaParametri()
Dim r, r1, r2, c, x, y, d, d1, d2, n, n1, RnA, rng, ris
'SetFG
set sh =worksheets(Activesheet.name)
Sh.Activate
Range("C2:C10000").ClearContents
sNo
eNo
r1 = Cells(Rows.Count, 1).End(xlUp).Row
r2 = Cells(Rows.Count, 5).End(xlUp).Row
RnA = Range("A2:B" & r1)
ReDim ris(1 To r1)
For x = 1 To UBound(RnA)
If x = 100 Then
r = r
End If
d1 = RnA(x - 1, 1)
d2 = RnA(x - 1, 2)
n1 = 0
For y = 2 To r2
Set rng = Range("E" & y & ":J" & y)
n = WorksheetFunction.CountIf(rng, d1) + WorksheetFunction.CountIf(rng, d2)
If n = 2 Then n1 = n1 + 1
Next y
ris(x) = n1
Next x
r = 2: c = 3
For x = 1 To UBound(ris)
Cells(r, c) = ris(x)
r = r + 1
Next x
'eSi
'sSi
End Sub
ho cercato di lavorare con le matrici in modo da impiegare meno tempo, ma anche cosi il tempo è considerevole, per la mole dei dati.
esiste qualche altro modo o metodo o funzione, insomma qualsiasi cosa di ricerca che possa diminuire il tempo di esecuzione.
posso anche allegare il file nel caso
Ciao By Sal (8-D
Premetto che si tratta di Lotto, ho un archivio di 6 numeri dalla colonna E alla colonna J composto di 14000 righe quindi un archivio grande
ed alla colonne "A-B" degli ambi composti da 2 numeri e sono oltre 4000 righe.
ora dovrei scrorrere per ogni ambo tutto l'archivio e contare quante volte è comparso l'ambo.
questo già lo faccio con la seguente macro
Sub RicerceSenzaParametri()
Dim r, r1, r2, c, x, y, d, d1, d2, n, n1, RnA, rng, ris
'SetFG
set sh =worksheets(Activesheet.name)
Sh.Activate
Range("C2:C10000").ClearContents
sNo
eNo
r1 = Cells(Rows.Count, 1).End(xlUp).Row
r2 = Cells(Rows.Count, 5).End(xlUp).Row
RnA = Range("A2:B" & r1)
ReDim ris(1 To r1)
For x = 1 To UBound(RnA)
If x = 100 Then
r = r
End If
d1 = RnA(x - 1, 1)
d2 = RnA(x - 1, 2)
n1 = 0
For y = 2 To r2
Set rng = Range("E" & y & ":J" & y)
n = WorksheetFunction.CountIf(rng, d1) + WorksheetFunction.CountIf(rng, d2)
If n = 2 Then n1 = n1 + 1
Next y
ris(x) = n1
Next x
r = 2: c = 3
For x = 1 To UBound(ris)
Cells(r, c) = ris(x)
r = r + 1
Next x
'eSi
'sSi
End Sub
ho cercato di lavorare con le matrici in modo da impiegare meno tempo, ma anche cosi il tempo è considerevole, per la mole dei dati.
esiste qualche altro modo o metodo o funzione, insomma qualsiasi cosa di ricerca che possa diminuire il tempo di esecuzione.
posso anche allegare il file nel caso
Ciao By Sal (8-D