Condividi:        

Excel - Macro o formule

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

Excel - Macro o formule

Postdi Lucio Peruggini » 10/08/12 22:56

Buona serata
Gentilmente e con il tempo dovuto:

Penso ci vorrebbe una macro o forse anche alcune formule per individuare e quindi
contrassegnare le colonne “G:U” come da foglio allegato.

Record totali Max che si possono avere = 250.000

In colonna “D” abbiamo valori sia storici che attuali contrassegnati dai simboli

st1, st2, st3, st4, st5;
at1, at2, at3, at4, at5.

Ogni range comprende 250 righe e, nelle colonne “G:U”, verranno segnate le operazioni così espresse:

Unica condizione: le celle interessate della colonna”D” riguardano esclusivamente gli eventi attuali che si trovano alla fine di ogni estrazione, cioè (at1, at2, at3, at4, at5) che a loro volta formano gruppi di 1, 2, 3, 4, 5 di celle consecutive precedute dagli storici. Come sempre l’esempio pratico è meglio che tante parole; ne faccio uno per tipologia di gruppo.

(Gruppo 5) Range A15247:15251 finisce l’estrazione 8068 e ci troviamo un gruppo 5 formato da cinque attuali; precedenti tutti storici “st” colonna “D”.
Quindi, nella riga 15251 colonna “G” verrà attribuito il valore più piccolo del gruppo 5, quint’ultimo; = E15247 con valore 495; seguito dal valore 84 colonna “H” che è la differenza di E15247-E15246 e, in colonna “I” il valore di appartenenza del gruppo, cioè 5 (Rl 5 Num).

(Gruppo 4) Range A1998:2001 finisce l’estrazione 8015 e ci troviamo un gruppo 4, formato da quattro attuali; precedenti tutti storici “st” “D”.
Quindi nella riga 2001 colonna “J” ci troviamo il valore 548 che è il più basso dei quattro attuali E1998; seguito dal valore 88 colonna “K” che è la differenza di E1998-E1997 e, in colonna “L” il valore di appartenenza del gruppo, cioè 4 (Rl 4Num).

(Gruppo 3) Range A499:A501 finisce l’estrazione 8009 e ci troviamo un gruppo 3 formato da tre attuali; i precedenti sono tutti storici “st” colonna “D”.
Quindi, nella riga 501 colonna “M” va inserito il terz’ultimo della colonna “E” = E499 con valore 554 cui segue il valore 137 colonna “N” che è la differenza di E499-E498 e, in colonna “O” il valore di appartenenza del gruppo, cioè 3 (Rl 3Num).

(Gruppo 2) Range A250:A251 finisce l’estrazione 8008 e ci troviamo con un gruppo 2 cioè formato da due attuali; i precedenti sono tutti storici “st”colonna “D”.
Quindi, nella riga 251 colonna “P” va inserito il penultimo della colonna “E” = E250 con valore 555; seguito dal valore 3 colonna “Q” che è la differenza di E250-E249 e, in colonna “R” il valore di appartenenza del gruppo, cioè 2 (Rl 2Num).

(Gruppo 1) Range A1251 finisce l’estrazione 8012 e ci troviamo un unico numero “attuale” gruppo 1 con i precedenti tutti storici “st” colonna “D”.
Quindi, nella riga 1251 colonna “S” va inserito l’ultimo della colonna “E” = E1251 con valore 551; seguito dal valore 72 colonna “T” che è la differenza di E1251-E1250 e, in colonna “U” il valore di appartenenza del gruppo, cioè 1 (Rl 1Num).

Spero non sia troppo complicato! Non v’è bisogno di colorare tranne la colonna “D” che riguarda i gruppi in questione.

Grazie molte a chi vorrà prendersi la briga per quanto chiedo.

Allego file

http://sharesend.com/i395p
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Sponsor
 

Re: Excel - Macro o formule

Postdi Flash30005 » 12/08/12 07:47

Complesso e articolato difficile da capire senza supporto di un file
(quello allegato non è un file di excel)

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Macro o formule

Postdi Lucio Peruggini » 12/08/12 09:31

Flash30005 ha scritto:Complesso e articolato difficile da capire senza supporto di un file
(quello allegato non è un file di excel)

ciao


Ciao Flash e buona domenica

Ho appena scaricato il file, perchè dici che non è un Excel? Capisco che è un pochino complesso, infatti avevo allegato il foglio. Prova a scaricarlo ancora e poi mi fai sapere.
Ad ogni modo lo zippo e lo rimetto.
http://sharesend.com/31wkk
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel - Macro o formule

Postdi Flash30005 » 12/08/12 12:00

Adesso il file è ok (quello precedente aveva un'estensione .bl [?] )

Ho seguito questo tuo "progetto" fin dall'inizio
Ancora una volta si sta verificando ciò che ho detto più volte in merito a questo genere di "programmi": analisi del lotto & affini.
L'utente inizia con delle "semplici" operazioni su un archivio estrazioni
(Rit Min, Rit Max, Freq., etc) pensando di ottenere dei numeri "validi" da poter giocare (come pretendere di poter sapere quali numeri usciranno in una estrazione casuale), quando si rende conto che non è così allora si ostina a cercare ulteriori possibili escamotage complicando l'analisi perché ritiene che il proprio ragionamento è giusto e deve essere il programma a dare la corretta previsione.
Chissà perché a nessuno mai viene in testa che è sbagliato il concetto iniziale: che i numeri casuali non sono prevedibili né da un uomo in stato cosciente né tantomeno da alcun programma essendo quest'ultimo ancora più razionale e logico dell'uomo quando, invece, i numeri estratti casualmente non hanno né logica né razionalità.
E' più facile indovinare i numeri che usciranno se si "sentono" come percezione "a pelle" o nella mente quasi come per "intuito" o sognandoli che non attraverso la fredda logica di un elaborato al Pc.

Ho comunque letto il tuo quesito e cercare di capire anche, se per i motivi sopra suddetti ero tentato a non intervenire perché so che continuando così non giungeremo mai alla fine del progetto.
Per me non c'è cosa peggiore che non sapere qual'è la meta da raggiungere ovvero che dopo esserci arrivato (aver percorso 1.000 km [meta prefissata] ne dovrò percorrere altri 10.000 senza sapere che sia la meta definitiva): non sono amante delle telenovele :D

Dicevo, che ho letto il quesito e analizzato il file e ho delle lacune: un esempio riguardo il gruppo 4 riga 1998:2001 trascrivi in J.K.L 2001 i dati relativi ma non capisco cosa siano i valori in G,H 2001.
Inoltre se già hai trovato ciò che ti occorre cos'altro vorresti ottenere?

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Macro o formule

Postdi Lucio Peruggini » 12/08/12 14:46

Ho seguito questo tuo "progetto" fin dall'inizio
Ancora una volta si sta verificando ciò che ho detto più volte in merito a questo genere di "programmi": analisi del lotto & affini.


Prima di tutto ti ringrazio per quanto hai fatto e per aver seguito questa mia ricerca molto personale e altrettanto innovativa. Non vorrei fare disquisizioni in merito a tale gioco ma, poiché non sono né giocatore né tantomeno un fanatico del medesimo, infatti il mio è un passatempo da pensionato, qualche piccola riflessione va addotta.


L'utente inizia con delle "semplici" operazioni su un archivio estrazioni
(Rit Min, Rit Max, Freq., etc) pensando di ottenere dei numeri "validi" da poter giocare (come pretendere di poter sapere quali numeri usciranno in una estrazione casuale), quando si rende conto che non è così allora si ostina a cercare ulteriori possibili escamotage complicando l'analisi perché ritiene che il proprio ragionamento è giusto e deve essere il programma a dare la corretta previsione.



Per quanto mi concerne, questo concetto su espresso fa parte del mio bagaglio personale e di ricercatore; ne conosco gli effetti e so esattamente dove va a parare. Condivido pienamente sulla casualità e non m’illudo né tantomeno nessuno s’illuda affatto di trovare numeri che usciranno e ti daranno la vincita.
Questo, però, esula dal fattore “ricerca statistica”! Grazie a essa, l’appassionato di tale gioco può “razionalmente” intervenire non sulla casualità che tale rimane ma quantomeno non buttare soldi al vento.


E' più facile indovinare i numeri che usciranno se si "sentono" come percezione "a pelle" o nella mente quasi come per "intuito" o sognandoli che non attraverso la fredda logica di un elaborato al Pc.



Condivido il concetto e aggiungo: Se qualche conoscente mi chiede quali numeri per ambo o sorti diverse poter giocare, gli rispondo sempre di giocarsi il “numero-ri” di scarpe suo e di sua moglie!


Ho comunque letto il tuo quesito e cercare di capire anche, se per i motivi sopra suddetti ero tentato a non intervenire perché so che continuando così non giungeremo mai alla fine del progetto.



Sinceramente mi spiace leggere quanto asserisci: questo progetto è ormai alla fine! Tutto quello che hai fatto fin’ora non è andato nel “cestino” ma è parte integrante del medesimo.
Vi è comunque una piccola osservazione:
Come tutte le ricerche, a qualunque campo esse siano dedicate, sono destinate a evolversi nel tempo; altrimenti saremmo all’età della pietra. L’evolversi dell’uomo produce contemporaneamente una scienza e una tecnologia sempre più agguerrite.
Senza la ricerca saremmo ora dove Siamo?


Per me non c'è cosa peggiore che non sapere qual'è la meta da raggiungere ovvero che dopo esserci arrivato (aver percorso 1.000 km [meta prefissata] ne dovrò percorrere altri 10.000 senza sapere che sia la meta definitiva): non sono amante delle telenovele


Hai pienamente ragione e non voglio approfittare della tua disponibilità per un fine aleatorio come questo. Del resto: se io conoscessi il VB avrei provveduto personalmente. Purtroppo non è così, quindi sono soggetto alla disponibilità altrui e non posso che ringraziare.

Veniamo ora al quesito che ti sfugge e dove hai delle lacune.

Dicevo, che ho letto il quesito e analizzato il file e ho delle lacune: un esempio riguardo il gruppo 4 riga 1998:2001 trascrivi in J.K.L 2001 i dati relativi ma non capisco cosa siano i valori in G,H 2001.


“G e H” sono valori che appartengono a un gruppo 5 cioè, cinque attuali preceduti in quell’estrazione da soli storici; come anche: “M e N”; “P e Q”; “S e T”.

Li ho messi su un’unica riga in modo tale che, con i filtri e togliendo le righe vuote, ottengo gli attuali di pertinenza. L’inghippo sorge dal fatto delle tante formazioni coinvolte per gruppo.

In pratica è in parte il lavoro che hai fatto con “ColoraSe” macro.
Solamente che, con la macro “ColoraSe” trova indistintamente tutti i gruppi con ritardo (x) e con le variabili impostate. In questo caso, trova esclusivamente dagli ultimi cinque all’ultimo rimasto dell’estrazione per ogni gruppo.

Esempio:
Prendi la prima estrazione laddove alla riga 250:251 abbiamo un gruppo due (ultimi due attuali rimasti) colonne “P,Q,R”.
La macro “ColoraSe” avrebbe trovato tutti i gruppi con medesimo ritardo

Codice: Seleziona tutto
Public UgB7, UgD7 As String, Col As Integer
Sub B7D7()
UgB7 = "="
UgD7 = "="
Columns("G:G").Clear
Col = 7
ColoraSe3
End Sub
Sub B7U()
UgB7 = "="
UgD7 = "."
Columns("I:I").Clear
Col = 9
ColoraSe3
End Sub
Sub D7U()
UgB7 = "."
UgD7 = "="
Columns("K:K").Clear
Col = 11
ColoraSe3
End Sub
Sub DivB7D7()
UgB7 = "."
UgD7 = "."
Columns("M:M").Clear
Col = 13
ColoraSe3
End Sub
Sub ColoraSe3()
    Worksheets("Storici").Select
    Application.ScreenUpdating = False
    Application.Calculation = xlManual

    UR = Range("A" & Rows.Count).End(xlUp).Row
    Columns("A:F").Interior.ColorIndex = xlNone
    Columns("A:F").Font.ColorIndex = 0
    Columns(Col).Clear
For RR = 8 To UR - 1
    RF = RR
    RI = RR
    AC = 0
    AggCol = Range("B" & RR).Value
        Str1 = Range("A" & RR).Value & Range("E" & RR).Value & Range("F" & RR).Value
        Conta = 1
        For RR2 = RR + 1 To UR
            Str2 = Range("A" & RR2).Value & Range("E" & RR2).Value & Range("F" & RR2).Value
            If Str1 <> Str2 Then GoTo SaltaRR
            If UgB7 = "=" Then
                If Range("B" & RR).Value <> Range("B" & RR2).Value Then GoTo SaltaRR
            Else
                If Range("B" & RR).Value = Range("B" & RR2).Value Then GoTo SaltaRR
            End If
           
            If UgD7 = "=" Then
                If Range("D" & RR).Value <> Range("D" & RR2).Value Then GoTo SaltaRR
            Else
                If Range("D" & RR).Value = Range("D" & RR2).Value Then GoTo SaltaRR
            End If
                RF = RR2
                RR = RR2
                Conta = Conta + 1
        Next RR2

SaltaRR:
    Select Case AggCol
    Case "Ba"
    AC = 0
    Case "Ca"
    AC = 9
    Case "Fi"
    AC = 10
    Case "Ge"
    AC = 11
    Case "Mi"
    AC = 12
    Case "Na"
    AC = 13
    Case "Pa"
    AC = 14
    Case "Ro"
    AC = 15
    Case "To"
    AC = 16
    Case "Ve"
    AC = 17
    End Select
    ColR = xlNone
    Select Case Conta
    Case 2
    ColR = 6
    Case 3
    ColR = 43
    Case 4
    ColR = 48
    Case 5
    ColR = 33
    End Select

    If ColR <> xlNone Then
        ColR = (ColR + AC) Mod 49
        If ColR = 0 Or ColR = 1 Then ColR = ColR + 10
    End If

    Range("A" & RI & ":F" & RF).Interior.ColorIndex = ColR
    If Conta > 1 Then
        Range(Cells(RI, Col), Cells(RF, Col)).Value = Conta
        Range(Cells(RI + 1, Col), Cells(RF, Col)).Font.ColorIndex = 2
    End If
    If ColR = 11 Or ColR = 9 Or ColR = 13 Or ColR = 5 Or ColR = 21 Then
        Range("A" & RI & ":F" & RF).Font.ColorIndex = 2
    End If
    RR = RF
Next RR
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub


Mentre qui, deve trovare esclusivamente dagli ultimi cinque all’ultimo rimasto. Vuol dire che, su 250 numeri di una estrazione, ruote e posizioni, alla fine alla fine avremo estrazioni con cinque, quattro, tre, due, uno attuali rimasti.

Qui finisce questa ricerca

Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel - Macro o formule

Postdi Flash30005 » 12/08/12 16:53

quindi vorresti sostituire le formule con una macro che trovi quei valori?

La colorazione celle è necessaria?
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Macro o formule

Postdi Flash30005 » 12/08/12 17:22

aggiungo:
noto che hai trascritto dei valori anche senza la presenza di "at" in colonna D (senza evento di gruppo previsto: riga 8501)
devono essere riportati anche questi valori?
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Macro o formule

Postdi Lucio Peruggini » 12/08/12 17:43

Flash30005 ha scritto:quindi vorresti sostituire le formule con una macro che trova quei valori?

La colorazione celle è necessaria?


Esatto!
La colorazione va fatta solamente nella colonna "D" e nelle colonne I, L, O, R, T. man mano che li trova.

In pratica, mettendo i filtri e cliccando ad esempio "I" o "L" oppure "O", "R", "T"; mi ritroverei nelle colonne quanto segue:

Colonna "I" appartenenza del gruppo (5) e, in "G:H" i valori ricavati dalla colonna "E".

Colonna "L" appartenenza del gruppo (4) e, in "J:K" i valori ricavati dalla colonna "E".

Colonna "O" appartenenza del gruppo (3) e, in "M:N" i valori ricavati dalla colonna "E".

Colonna "R" appartenenza del gruppo (2) e, in "P:Q" i valori ricavati dalla colonna "E".

Colonna "T" appartenenza del gruppo (1) e, in "S:T" i valori ricavati dalla colonna "E".

Capisco che è complicato e ti ringrazio anticipatamente per il tempo che dedichi altruisticamente.

Ho letto ora l'arguta riflessione!

"aggiungo:
noto che hai trascritto dei valori anche senza la presenza di "at" in colonna D (senza evento di gruppo previsto: riga 8501)
devono essere riportati anche questi valori?"

No, non è necessario! Possono essere anche tutti su tre colonne "G,H,I"; in questo modo e con i filtri, scelgo il gruppo e i suoi valori.
Vedi tu come viene più comodo e semplice fare.

Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel - Macro o formule

Postdi Flash30005 » 12/08/12 21:56

prova questa macro
prende in considerazione solo se in D c'è almeno un "at.."
Codice: Seleziona tutto
Sub TrovaGruppi()
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
Range(Cells(2, 4), Cells(UR, 21)).Interior.Color = xlNone
Range(Cells(2, 7), Cells(UR, 21)).ClearContents
Riga = 2
For RR = Riga To UR
Gr = 0
If Mid(Range("D" & RR).Value, 1, 2) = "at" Then
Gr = 1
Riga = RR
If Mid(Range("D" & RR + 1).Value, 1, 2) = "at" Then
Gr = 2
Riga = RR + 1
If Mid(Range("D" & RR + 2).Value, 1, 2) = "at" Then
Gr = 3
Riga = RR + 2
If Mid(Range("D" & RR + 3).Value, 1, 2) = "at" Then
Gr = 4
Riga = RR + 3
If Mid(Range("D" & RR + 4).Value, 1, 2) = "at" Then
Gr = 5
Riga = RR + 4
End If
End If
End If
End If
End If
If Gr > 0 Then
    For NG = 1 To 5
        Cells(Riga, 22 - NG * 3).Value = Cells(Riga - NG + 1, 5).Value
        Cells(Riga, 23 - NG * 3).Value = Cells(Riga - NG + 1, 5).Value - Cells(Riga - NG, 5).Value
    Next NG
    Cells(Riga, 24 - Gr * 3).Value = Gr
    Range(Cells(Riga, 4), Cells(Riga - Gr + 1, 4)).Interior.Color = 65535
    RR = Riga
End If
Next RR
End Sub

Se vuoi colorare anche le celle di appratenenza gruppo (I,L,O,R,U) aggiungi questa riga dove indicato
Codice: Seleziona tutto
       Range(Cells(Riga, 4), Cells(Riga - Gr + 1, 4)).Interior.Color = 65535              '<<<< riga esistente
 Range(Cells(Riga, 24 - Gr * 3), Cells(Riga - Gr + 1, 24 - Gr * 3)).Interior.Color = 65535   '<<< aggiungere qui
    RR = Riga  '<<<<<<<<< riga esistente


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Macro o formule

Postdi Lucio Peruggini » 12/08/12 23:17

Ciao Flash, quanto hai fatto è semplicemente "MAGISTRALE"!
Dirti grazie probabilmente è poco; se in qualche modo potessi contracambiare ben volentieri.
Chissà.....................................

Chiedo: Per controllarmi i soli storici basta inserire al posto di "at" la dicitura "st"?

If Mid(Range("D" & RR).Value, 1, 2) = "at" Then
Gr = 1
Riga = RR
If Mid(Range("D" & RR + 1).Value, 1, 2) = "at" Then
Gr = 2
Riga = RR + 1
If Mid(Range("D" & RR + 2).Value, 1, 2) = "at" Then
Gr = 3
Riga = RR + 2
If Mid(Range("D" & RR + 3).Value, 1, 2) = "at" Then
Gr = 4
Riga = RR + 3
If Mid(Range("D" & RR + 4).Value, 1, 2) = "at" Then

Un caro saluto
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel - Macro o formule

Postdi Flash30005 » 12/08/12 23:41

Non proprio perché l'evento "at", secondo il tuo schema dati, si trova, quando esiste, alla fine delle 250 righe mentre "st" lo hai ovunque e sono in gruppi superiori a 5
Altrimenti dovrei modificare la macro e prendere in considerazione solo dalla 246a riga alla 251a e loro multipli

Con poche modifiche quetsa macro legge cosa accade tra la 245 e la 250 riga (testata esclusa)
Codice: Seleziona tutto
Sub TrovaGruppi2()
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
Range(Cells(2, 4), Cells(UR, 21)).Interior.Color = xlNone
Range(Cells(2, 7), Cells(UR, 21)).ClearContents
Riga = 2
For RR = 251 To UR Step 250
Gr = 0
If Mid(Range("D" & RR).Value, 1, 2) = "at" Then
Gr = 1
Riga = RR
If Mid(Range("D" & RR - 1).Value, 1, 2) = "at" Then
Gr = 2
Riga = RR - 1
If Mid(Range("D" & RR - 2).Value, 1, 2) = "at" Then
Gr = 3
Riga = RR - 2
If Mid(Range("D" & RR - 3).Value, 1, 2) = "at" Then
Gr = 4
Riga = RR - 3
If Mid(Range("D" & RR - 4).Value, 1, 2) = "at" Then
Gr = 5
Riga = RR - 4
End If
End If
End If
End If
End If
If Gr > 0 Then
    For NG = 1 To 5
        Cells(Riga, 22 - NG * 3).Value = Cells(Riga - NG + 1, 5).Value
        Cells(Riga, 23 - NG * 3).Value = Cells(Riga - NG + 1, 5).Value - Cells(Riga - NG, 5).Value
    Next NG
    Cells(Riga, 24 - Gr * 3).Value = Gr
    Range(Cells(Riga, 4), Cells(Riga - Gr + 1, 4)).Interior.Color = 65535
    Range(Cells(Riga, 24 - Gr * 3), Cells(Riga - Gr + 1, 24 - Gr * 3)).Interior.Color = 65535

End If
Next RR
End Sub



Ora se sostituisci gli "at" con "st" ottieni i dati con "st"
è chiaro, però, che otterrai solo gruppi da 5

Ciao
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Macro o formule

Postdi Lucio Peruggini » 13/08/12 00:13

Ciao Flash, in realtà quanto hai fatto è quello che serviva per gli attuali.Per quanto riguarda gli eventi solo storici abbiamo una statistica su altro foglio. Questi, servono statisticamente parlando nel rilevare nella loro totalità i ritardi storici dei vari livelli; partendo dal livello 5 al livello 1.
Quindi come hai fatto con gli attuali, così sarà per gli storici.

Colonne "G:U" che segneranno i ritardi pertinenti ai solo storici;
gruppo 5, 4, 3, 2 1.

Penso di aver chiarito ma se ti sfugge qualcosa dimmelo, grazie.

Dimenticanza......

E' come se nel foglio che hai anziché essere attuali sono tutti storici.
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel - Macro o formule

Postdi Flash30005 » 13/08/12 00:19

Ho aggiunto la macro modificata nel post precedente
oltre ad essere più veloce della precedente (per gli "at") può essere modificata come indicato
ma gli storici, nell'attuale foglio, non hanno 4,3,2,1 gruppi perché non ci sono "at" che "interrompono" il gruppo come succedeva con gli "at"
Se, invece, hai un altro foglio per gli storici la potrai utilizzare ottenendo la stessa analisi per gli "st"

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Macro o formule

Postdi Lucio Peruggini » 13/08/12 09:34

http://s16.postimage.org/hrhn7znr9/Isocronismi.png

Ciao Flash e buona giornata

Effettivamente hai ragione per quanto riguarda gli storici, ci ritroveremmo solo con gruppi di cinque. Comunque, non ha molta importanza far lavorare la macro su un foglio di soli storici che peraltro si ottengono con le formule.

Mentre c'è un inconveniente che si riscontra quando applico la macro al foglio intero laddove ci sono storici e attuali insieme. Foglio che non ho potuto inviarti prima perché è composto da 230.000 righe.

L'inconveniente che si verifica accade perché nel foglio completo gli attuali, in moltissime estrazioni, superano i cinque gruppi e quindi la macro così impostata sfalsa ovviamente i risultati. Come vedi nell'immagine allegata ho sostituito aggiungendo ai due attuali (prima estrazione - foglio che tu hai), quattro attuali (riga 246, 247, 248, 249).
Bisognerebbe applicare una condizione laddove, quando in un'estrazione completa "250" righe gli attuali superano i cinque (tetto massimo), deve saltarla completamente; in modo da ottenere risultati esatti con gruppi che vanno da cinque a uno.

Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel - Macro o formule

Postdi Flash30005 » 13/08/12 09:50

aggiungi solo questa riga di codice dove indicato all'ultima macro postata (ore 00:41)
Codice: Seleziona tutto
Riga = RR - 4  '<<<<<<<<<<< esistente
If Mid(Range("D" & RR - 5).Value, 1, 2) = "at" Then Gr = 0   '<<<<< aggiungere
End If  '<<<<<<<<< esistente
...
...


ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Macro o formule

Postdi Flash30005 » 13/08/12 10:10

Mi sono accorto di un bug (sfalsamento di trascrizione riga e colorazione) pertanto riporto qui la macro definitiva
Codice: Seleziona tutto
Sub TrovaGruppi2()
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
Range(Cells(2, 4), Cells(UR, 21)).Interior.Color = xlNone
Range(Cells(2, 7), Cells(UR, 21)).ClearContents
Riga = 2
For RR = 251 To UR Step 250
Gr = 0
If Left(Range("D" & RR).Value, 2) = "at" Then
Gr = 1
Riga = RR
If Left(Range("D" & RR - 1).Value, 2) = "at" Then
Gr = 2
Riga = RR - 1
If Left(Range("D" & RR - 2).Value, 2) = "at" Then
Gr = 3
Riga = RR - 2
If Left(Range("D" & RR - 3).Value, 2) = "at" Then
Gr = 4
Riga = RR - 3
If Left(Range("D" & RR - 4).Value, 2) = "at" Then
Gr = 5
Riga = RR - 4
If Left(Range("D" & RR - 5).Value, 2) = "at" Then Gr = 0
End If
End If
End If
End If
End If
If Gr > 0 Then
    For NG = 1 To 5
        Cells(RR, 22 - NG * 3).Value = Cells(Riga - NG + 1, 5).Value
        Cells(RR, 23 - NG * 3).Value = Cells(Riga - NG + 1, 5).Value - Cells(Riga - NG, 5).Value
    Next NG
    Cells(RR, 24 - Gr * 3).Value = Gr
    Range(Cells(RR, 4), Cells(RR - Gr + 1, 4)).Interior.Color = 65535
    Range(Cells(RR, 24 - Gr * 3), Cells(RR - Gr + 1, 24 - Gr * 3)).Interior.Color = 65535

End If
Next RR
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Macro o formule

Postdi Lucio Peruggini » 13/08/12 11:14

Ciao Flash
Lavoro ultimato!!!

Grazie infiniteeeeeeeeeeeeeee la macro funziona perfettamente!

Le tue preoccupazioni sono finite? "giungeremo mai alla fine del progetto?" "Neanche io sono amante delle telenovele".
Penso che ci siamo arrivati! Grazie alla tuo sostanziale aiuto senza del quale non avrei risolto tale problematica.

Ciao :)
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23


Torna a Applicazioni Office Windows


Topic correlati a "Excel - Macro o formule":


Chi c’è in linea

Visitano il forum: Nessuno e 52 ospiti