Risultati da 1 a 28 di 28

Discussione: Classifica con più prove dello stesso partecipante



  1. #1
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Classifica con più prove dello stesso partecipante

    Buongiorno a Voi Signori, sto cercando da parecchi giorni di trovare una soluzione a questo problema: si tratta di una classifica di una gara di tiro a volo, dove i partecipanti possono gareggiare più volte; il punteggio, indifferentemente da quante volte hanno gareggiato, è il migliore ottenuto su 20 bersagli. A parità di punteggio, fra gli stessi o con gli altri partecipanti, subentrano altri parametri: a che numero di tiro hanno fatto il primo errore, a quale numero il secondo, a quale il terzo e a quale il quarto. In questo modo il vincitore, nonostante abbia fatto più gare, viene selezionato in base al maggior punteggio e in base a quale numero di tiro ha commesso il primo, secondo, terzo, quarto errore di tiro (più il numero dell'errore è alto, meglio è). Anche se sono più gare, si considerano sempre i risultati migliori della singola prestazione.
    Ho imbastito il mio report e poi estrapolo con una tabella pivot i dati MA nonostante riesca ad estrapolare la miglior prestazione in fatto di punteggio di ogni partecipante, e il numero maggiore al qualche è stato fatto il primo errore, non riesco a far proseguire la classifica seguendo i valori della stessa riga (nella tabella troverete la funzione "Somma" impostata di base dalla tabella che ovviamente è inesatta).
    Allego il file. Vi ringrazio anticipatamente.
    Paolo
    File Allegati File Allegati

  2. #2

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7142
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300

    Re: Classifica con più prove dello stesso partecipante

    Ciao Alfetto,
    ma non ti adrebbe bene una classifica che tiene conto di tutte le condizioni ottenuta con questa formula? Da inserire in una cella e trascinare a destra e in basso.

    =INDICE(A$3:A$15;CONFRONTA(GRANDE($D$3:$D$15+($E$3:$E$15)/100-RIF.RIGA($D$3:$E$15)/10000+($F$3:$F$15)/100-RIF.RIGA($D$3:$D$15)/10000;RIGHE($A$1:$A1));$D$3:$D$15+($E$3:$E$15)/100-RIF.RIGA($D$3:$E$15)/10000+($F$3:$F$15)/100-RIF.RIGA($D$3:$D$15)/10000;0))

    Ti allego il file.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  3. I seguenti 3 utenti hanno dato un "Like" a ges per questo post:


  4. #3

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7142
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300

    Re: Classifica con più prove dello stesso partecipante

    In alternativa ti allego una classifica ottenuta con il vba (qui ho messo più in alto chi ha fatto meno errori e forse era questo l'ordine da te preferito ... fammi sapere)
    Codice: 
    Sub Ordina()
        Application.ScreenUpdating = False
        Range("A2:H15").Copy
        Range("L2").PasteSpecial Paste:=xlValues
        With Sheets(1)
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=Range("O3:O15"), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("P3:P15"), SortOn:=xlSortOnValues, Order:=xlAscending
            .Sort.SortFields.Add Key:=Range("Q3:Q15"), SortOn:=xlSortOnValues, Order:=xlAscending
            .Sort.SortFields.Add Key:=Range("R3:R15"), SortOn:=xlSortOnValues, Order:=xlAscending
            .Sort.SortFields.Add Key:=Range("S3:S15"), SortOn:=xlSortOnValues, Order:=xlAscending
        End With
        With Sheets(1).Sort
            .SetRange Range("L2:S15")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Application.CutCopyMode = False
        Application.ScreenUpdating = True
    End Sub
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  5. I seguenti utenti hanno dato un "Like"


  6. #4
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133

    Re: Classifica con più prove dello stesso partecipante

    Ciao Alfetto, e una buona domenica a tutti gli amici del forum, un'alternativa alla formula proposta da Ges che saluto, e che utilizza la funzione aggrega, visto che utilizzi office 2010 che la supporta, è la seguente:

    In K13:
    =SE.ERRORE(INDICE(A$3:A$15;AGGREGA(14;6;(RIF.RIGA($A$3:$A$15)-2)/($D$3:$D$15+$E$3:$E$15/100+$F$3:$F$15/1000+$G$3:$G$15/10000+$H$3:$H$15/100000+RIF.RIGA($A$3:$A$15)/1000000=GRANDE($D$3:$D$15+$E$3:$E$15/100+$F$3:$F$15/1000+$G$3:$G$15/10000+$H$3:$H$15/100000+RIF.RIGA($A$3:$A$15)/1000000;RIGHE($D$3:$D3)));1));"")

    da tirare a destra fino a R13 e poi tirare giù alla bisogna.
    Allego il file di prova.
    Saluti.
    File Allegati File Allegati

  7. #5
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    Grazie ragazzi, ci siete andati vicino ma non è proprio ciò che mi serve.
    Provo a spiegare in altro modo: da un "database" devo cercare nella colonna "partecipante" i nominativi che si distinguono in "cacciatori" e "tiratori" (nella mia pivot era già filtrato per tiratori); di questi devo selezionare solo chi ha fatto nella colonna "specialità" la gara (potrebbero esserci anche tiri liberi ma non devono influire sulla graduatoria). Vince chi ha un punteggio più alto e a parità di punteggio chi fa il "primo errore" al numero più alto, che a parità anche di questo si considera il "secondo errore" al numero più altro, e così via. In pratica il numero alto identifica l'aver sbagliato dopo di altri.
    Spero di non avervi confuso.
    ciao e grazie

  8. #6
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    Cercando di chiarire ulteriormente: Fra questi 2 vince Paolo perchè a parità di punteggio e 1°-2°-3° errore, il quarto errore lo ha fatto al 15esimo colpo anzichè al 14esimo.

    Paolo Tiratore Gara 16 7 10 14 15

    Antonio Tiratore Gara 16 7 10 14 14

  9. #7
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133

    Re: Classifica con più prove dello stesso partecipante

    Ciao Alfetto, hai aperto il file al post#4?
    Credo che vada bene.

  10. #8
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    Grazie Pkrome59, il tuo suggerimento funziona ma, purtroppo, prende in considerazione anche se il partecipante ha fatto più prestazioni. Il sistema dovrebbe selezionare solo la migliore prestazione di ogni singolo partecipante.

  11. #9

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Classifica con più prove dello stesso partecipante

    In attesa di una super matriciale di pkrome59 (che saluto), ti propongo la versione VBA che riscrive la tabella a partire da A21 (ma si può cambiare)
    Codice: 
    Sub creaTabella()
    Dim uRiga As Long
    Dim iRow As Integer, iCol As Integer
    Dim Matrix()
    Dim TempMatrix(8)
    Dim i As Integer, a As Integer, x As Integer
    
    
    uRiga = Range("a" & Rows.Count).End(xlUp).Row
    ReDim Matrix(uRiga - 3, 8)
    For iRow = 3 To uRiga
        For iCol = 1 To 8
            Matrix(iRow - 3, iCol - 1) = Cells(iRow, iCol)
        Next
        Matrix(iRow - 3, 8) = Matrix(iRow - 3, 3) + Matrix(iRow - 3, 4) / 100 + Matrix(iRow - 3, 5) / 10000 + Matrix(iRow - 3, 6) / 1000000 + Matrix(iRow - 3, 7) / 100000000
    Next
    
    
    For i = UBound(Matrix) To LBound(Matrix) + 1 Step -1
        For a = i - 1 To LBound(Matrix) Step -1
            If Matrix(i, 8) > Matrix(a, 8) Then
                For x = 0 To 8
                    TempMatrix(x) = Matrix(i, x)
                Next
                For x = 0 To 8
                    Matrix(i, x) = Matrix(a, x)
                Next
                For x = 0 To 8
                    Matrix(a, x) = TempMatrix(x)
                Next
            End If
        Next a
    Next i
    
    
    i = 20
    For iRow = 0 To 12
        For x = iRow - 1 To 0 Step -1
            If Matrix(x, 0) = Matrix(iRow, 0) Then
                GoTo Successivo
            End If
        Next
        i = i + 1
        For iCol = 0 To 7
            Cells(i, iCol + 1) = Matrix(iRow, iCol)
        Next
    Successivo:
    Next
    
    
    End Sub

  12. I seguenti utenti hanno dato un "Like"


  13. #10
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    Grazie Rubik72 ma non mastico VBA. La versione di Ges era "semplice " perchè mi ha allegato il file ma io non saprei come impostarla/usarla.

  14. #11

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Classifica con più prove dello stesso partecipante

    Non è difficile, segui questi passaggi.

    1) apri l'editor VBA (ALT+F11)
    2) inserisci/Modulo
    3) copia il codice
    4) inserisci un tasto nel foglio da Inserisci/Forme (scegli la forma che più ti piace e applica un testo)
    5) associa il tasto alla macro con tasto dx sulla forma "assegna macro"

    Visto che ho integrato il codice con qualche riga, copia questo:
    Codice: 
    Sub creaTabella()
    Dim uRiga As Long
    Dim iRow As Integer, iCol As Integer
    Dim Matrix()
    Dim TempMatrix(8)
    Dim i As Integer, a As Integer, x As Integer
    
    
    
    
    uRiga = Range("a" & Rows.Count).End(xlUp).Row
    ReDim Matrix(uRiga - 3, 8)
    For iRow = 3 To uRiga
        For iCol = 1 To 8
            Matrix(iRow - 3, iCol - 1) = Cells(iRow, iCol)
        Next
        Matrix(iRow - 3, 8) = Matrix(iRow - 3, 3) + Matrix(iRow - 3, 4) / 100 + Matrix(iRow - 3, 5) / 10000 + Matrix(iRow - 3, 6) / 1000000 + Matrix(iRow - 3, 7) / 100000000
    Next
    
    
    
    
    For i = UBound(Matrix) To LBound(Matrix) + 1 Step -1
        For a = i - 1 To LBound(Matrix) Step -1
            If Matrix(i, 8) > Matrix(a, 8) Then
                For x = 0 To 8
                    TempMatrix(x) = Matrix(i, x)
                Next
                For x = 0 To 8
                    Matrix(i, x) = Matrix(a, x)
                Next
                For x = 0 To 8
                    Matrix(a, x) = TempMatrix(x)
                Next
            End If
        Next a
    Next i
    
    
    
    
    Range("k13").CurrentRegion.Offset(1, 0).ClearContents
    i = 13
    For iRow = 0 To 12
        For x = iRow - 1 To 0 Step -1
            If Matrix(x, 0) = Matrix(iRow, 0) Then
                GoTo Successivo
            End If
        Next
        i = i + 1
        For iCol = 0 To 7
            Cells(i, iCol + 11) = Matrix(iRow, iCol)
        Next
    Successivo:
    Next
    
    
    Erase Matrix()
    Erase TempMatrix
    
    
    End Sub

  15. I seguenti utenti hanno dato un "Like"


  16. #12
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Classifica con più prove dello stesso partecipante

    DOMANDA

    Vedo che il partecipante:
    Davide è presente due volte ed ha fatto solo tiri liberi entrambi come tiratore
    Franco è presente due volte ed ha fatto solo due gare entrambe come tiratore, come lui, Paolo e Walter

    tutto questo è normale oppure è solo per via dell' esempio?

    Poi, I tiri, le colonne denominate Primo, Secondo, Terzo, e Quarto , sono sempre 4 oppure possono diventare di più o di meno?

  17. #13
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    GRazie Rubik72, sembra che funzioni. Dopo faccio qualche prova ma prima ti faccio una domanda/richiesta: se nella colonna "categoria" ci fossero 2 tipologie diverse (ad esempio "cacciatore" e "tiratore") e volessi creare 2 classifiche distinte.... puoi modificare il VBA inserendo quel filtro? Poi eventualmente assegno la macro a 2 pulsanti diversi (1 per classifica tiratore e 1 per classifica cacciatore).
    grazie!!

  18. #14
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    Ciao dracoscrigno,
    La tabella è veritiera: nelle manifestazioni "amatoriali" di tiro a volo i partecipanti possono fare sia "gara" che "tiri liberi" (una sorta di riscaldamento). Inoltre possono fare più presenze come "gara" e ovviamente conta, per la classifica, solamente il miglior piazzamento. Le colonne degli errori sempre 4 perchè vengono segnati a quale numero di tiro è stato sbagliato il bersaglio. Più il numero è alto e più si sbaglia dopo altri e, in caso di parità di punteggio, conta come una "differenza reti" del calcio.
    ciao

  19. #15

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7142
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300

    Re: Classifica con più prove dello stesso partecipante

    Ciao ai partecipanti,
    tenendo conto delle indicazioni di Alfetto avevo iniziato nel pomeriggio a scrivere una sub, poi ho interrotto e ora l'ho finita, anche se è già perfetta quella dell'amico Rubik (che saluto) ormai la posto:
    Codice: 
     Option ExplicitSub classifica()
        Dim x As Integer, y As Integer
        Application.ScreenUpdating = False
        Application.CutCopyMode = False
        With Sheets(1)
            x = 3
            For y = 3 To 15
                If .Range("C" & y) = "Gara" And .Range("B" & y) = .Range("B1") Then
                    .Range("J" & x) = .Range("A" & y)
                    .Range("K" & x) = .Range("B" & y)
                    .Range("L" & x) = .Range("C" & y)
                    .Range("M" & x) = .Range("D" & y)
                    .Range("N" & x) = .Range("E" & y)
                    .Range("O" & x) = .Range("F" & y)
                    .Range("P" & x) = .Range("G" & y)
                    .Range("Q" & x) = .Range("H" & y)
                    x = x + 1
                End If
            Next
        End With
        With Sheets(1)
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=Range("J3:J15"), SortOn:=xlSortOnValues, Order:=xlAscending
            .Sort.SortFields.Add Key:=Range("K3:K15"), SortOn:=xlSortOnValues, Order:=xlAscending
            .Sort.SortFields.Add Key:=Range("M3:M15"), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("N3:N15"), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("O3:O15"), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("P3:P15"), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("Q3:Q15"), SortOn:=xlSortOnValues, Order:=xlDescending
        End With
        With Sheets(1).Sort
            .SetRange Range("J2:Q15")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        With Sheets(1)
            For y = 3 To 15
                If .Range("J" & y) = .Range("J" & y + 1) Then
                    .Range("J" & y + 1) = ""
                End If
                If .Range("J" & y) = .Range("J" & y + 2) Then
                    .Range("J" & y + 2) = ""
                End If
                If .Range("J" & y) = .Range("J" & y + 3) Then
                    .Range("J" & y + 3) = ""
                End If
                If .Range("J" & y) = "" Then
                    .Range(("K" & y), .Range("Q" & y)) = ""
                End If
            Next
        End With
        With Sheets(1)
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=Range("M3:M11"), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("N3:N11"), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("O3:O11"), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("P3:P11"), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("Q3:Q11"), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("J3:J11"), SortOn:=xlSortOnValues, Order:=xlAscending
        End With
        With Sheets(1).Sort
            .SetRange Range("J2:Q11")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Application.ScreenUpdating = True
    End Sub
    P.s.- Ho messo anche la scelta "Cacciatore" "Tiratore"
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  20. I seguenti utenti hanno dato un "Like"


  21. #16
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133

    Re: Classifica con più prove dello stesso partecipante

    Ciao Alfetto, e buona sera a tutti, non so se ti soddisfa, comunque una pseudo classifica sembra sia venuta fuori.
    Copia la seguente:

    In K13:
    =SE.ERRORE(INDICE(A$3:A$15;AGGREGA(14;6;(RIF.RIGA($A$3:$A$15)-2)/($C$3:$C$15="Gara")*(FREQUENZA(CONFRONTA($A$3:$A$15;$A$3:$A$15;0);RIF.RIGA($A$3:$A$15)-RIF.RIGA($A$3)+1)>0)*($D$3:$D$15+$E$3:$E$15/100+$F$3:$F$15/1000+$G$3:$G$15/10000+$H$3:$H$15/100000+RIF.RIGA($A$3:$A$15)/1000000=GRANDE($D$3:$D$15+$E$3:$E$15/100+$F$3:$F$15/1000+$G$3:$G$15/10000+$H$3:$H$15/100000+RIF.RIGA($A$3:$A$15)/1000000;RIGHE($D$3:$D3)));1));"")

    trascini a destra fino ad R13 e poi tiri giù alla bisogna.
    Allego il file di prova.
    Saluti.
    File Allegati File Allegati

  22. I seguenti 2 utenti hanno dato un "Like" a pkrome59 per questo post:


  23. #17

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Classifica con più prove dello stesso partecipante

    Io penso che possa bastare anche un filtro, comunque ecco la nuova routine:
    Codice: 
    Option Explicit
    
    
    Sub creaTabella(Categoria As String, Destinazione As Range)
    Dim uRiga As Long
    Dim iRow As Integer, iCol As Integer
    Dim Matrix()
    Dim TempMatrix(8)
    Dim i As Integer, a As Integer, x As Integer, n As Long
    
    
    
    
    uRiga = Range("a" & Rows.Count).End(xlUp).Row
    ReDim Matrix(uRiga - 3, 8)
    For iRow = 3 To uRiga
        For iCol = 1 To 8
            Matrix(iRow - 3, iCol - 1) = Cells(iRow, iCol)
        Next
        Matrix(iRow - 3, 8) = Matrix(iRow - 3, 3) + Matrix(iRow - 3, 4) / 100 + Matrix(iRow - 3, 5) / 10000 + Matrix(iRow - 3, 6) / 1000000 + Matrix(iRow - 3, 7) / 100000000
    Next
    
    
    
    
    For i = UBound(Matrix) To LBound(Matrix) + 1 Step -1
        For a = i - 1 To LBound(Matrix) Step -1
            If Matrix(i, 8) > Matrix(a, 8) Then
                For x = 0 To 8
                    TempMatrix(x) = Matrix(i, x)
                Next
                For x = 0 To 8
                    Matrix(i, x) = Matrix(a, x)
                Next
                For x = 0 To 8
                    Matrix(a, x) = TempMatrix(x)
                Next
            End If
        Next a
    Next i
    
    
    With Destinazione
        .CurrentRegion.ClearContents
        i = .Row
        n = .Column
        Destinazione = "PARTECIPANTE"
        Destinazione.Offset(0, 1) = "CATEGORIA"
        Destinazione.Offset(0, 2) = "SPECIALITA'"
        Destinazione.Offset(0, 3) = "PUNTEGGI"
        Destinazione.Offset(0, 4) = "I°"
        Destinazione.Offset(0, 5) = "II°"
        Destinazione.Offset(0, 6) = "III°"
        Destinazione.Offset(0, 7) = "IV°"
    End With
    
    
    For iRow = 0 To 12
        For x = iRow - 1 To 0 Step -1
            If Matrix(x, 0) = Matrix(iRow, 0) Then
                GoTo Successivo
            End If
        Next
        If UCase(Matrix(iRow, 1)) = UCase(Categoria) Then
            i = i + 1
            For iCol = 0 To 7
                Cells(i, iCol + n) = Matrix(iRow, iCol)
            Next
        End If
    Successivo:
    Next
    
    
    Erase Matrix()
    Erase TempMatrix
    
    
    End Sub
    
    
    Sub Tiratore()
        Call creaTabella("Tiratore", Range("K13"))
    End Sub
    
    
    Sub Cacciatore()
        Call creaTabella("Cacciatore", Range("K25"))
    End Sub
    Le macro da associare sono le ultime due "Tiratore" - "Cacciatore" in cui vanno modificati i range di destinazione a proprio piacimento

  24. I seguenti utenti hanno dato un "Like"


  25. #18
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    Per prima cosa un grazie a tutti voi. Riaccendo adesso il pc e trovo varie soluzioni. Che dire: adesso "gioco" un pò e poi vi aggiorno.
    Ancora grazie.
    ciao

  26. #19
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    Dopo un pò di prove ho deciso di utilizzare il suggerimento di Ges, ma avrei alcune domande da fare.
    Vedo che i parametri sono per pescare i dati nella mia tabella: ma se avessi più partecipanti? Ad esempio 50? Ho provato a modificare tutti i parametri che riportavano come numero di riga finale la n° 15 (e l'ho sostituito con 50, ma potrebbero essere molti di più). Ottengo un risultato anomalo: la macro crea una tabella di 6 righe, ne lascia 3 in bianco e poi aggiunge una riga compilata ma non viene considerata dalle 6 righe superiori.

  27. #20

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7142
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300

    Post Re: Classifica con più prove dello stesso partecipante

    Ciao Alfetto,
    visto che hai scelto il mio metodo ti modifico il codice in modo che possa filtrarti la classifica indipendentemente dai partecipanti siano essi 50, 500 o più.
    Codice: 
    Option Explicit
    Sub classifica()
        Dim x As Long, y As Long, uRiga As Long, cella As Range
        Application.ScreenUpdating = False
        Application.CutCopyMode = False
        With Sheets(1)
            uRiga = Range("A" & Rows.Count).End(xlUp).Row
            x = 3
            For y = 3 To uRiga
                If .Range("C" & y) = "Gara" And .Range("B" & y) = .Range("B1") Then
                    .Range("J" & x) = .Range("A" & y)
                    .Range("K" & x) = .Range("B" & y)
                    .Range("L" & x) = .Range("C" & y)
                    .Range("M" & x) = .Range("D" & y)
                    .Range("N" & x) = .Range("E" & y)
                    .Range("O" & x) = .Range("F" & y)
                    .Range("P" & x) = .Range("G" & y)
                    .Range("Q" & x) = .Range("H" & y)
                    x = x + 1
                End If
            Next
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=Range("J3:J" & uRiga), SortOn:=xlSortOnValues, Order:=xlAscending
            .Sort.SortFields.Add Key:=Range("K3:K" & uRiga), SortOn:=xlSortOnValues, Order:=xlAscending
            .Sort.SortFields.Add Key:=Range("M3:M" & uRiga), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("N3:N" & uRiga), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("O3:O" & uRiga), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("P3:P" & uRiga), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("Q3:Q" & uRiga), SortOn:=xlSortOnValues, Order:=xlDescending
        End With
        With Sheets(1).Sort
            uRiga = Range("A" & Rows.Count).End(xlUp).Row
            .SetRange Range("J2:Q" & uRiga)
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        With Sheets(1)
            uRiga = Range("A" & Rows.Count).End(xlUp).Row
            .Range("U3:U" & uRiga).FormulaLocal = "=CONTA.SE($J$3:J3;J3)"
            For Each cella In .Range("U3:U" & uRiga)
                If cella.Value > 1 Then
                    cella.Offset(0, -4) = ""
                    cella.Offset(0, -5) = ""
                    cella.Offset(0, -6) = ""
                    cella.Offset(0, -7) = ""
                    cella.Offset(0, -8) = ""
                    cella.Offset(0, -9) = ""
                    cella.Offset(0, -10) = ""
                    cella.Offset(0, -11) = ""
                End If
            Next
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=Range("M3:M" & uRiga), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("N3:N" & uRiga), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("O3:O" & uRiga), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("P3:P" & uRiga), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("Q3:Q" & uRiga), SortOn:=xlSortOnValues, Order:=xlDescending
            .Sort.SortFields.Add Key:=Range("J3:J" & uRiga), SortOn:=xlSortOnValues, Order:=xlAscending
            .Range("U2:U" & uRiga) = ""
        End With
        With Sheets(1).Sort
            uRiga = Range("A" & Rows.Count).End(xlUp).Row
            .SetRange Range("J2:Q" & uRiga)
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Application.ScreenUpdating = True
    End Sub
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  28. I seguenti 3 utenti hanno dato un "Like" a ges per questo post:


  29. #21
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133

    Re: Classifica con più prove dello stesso partecipante

    Ciao Alfetto, con le formule, si ha:

    In Foglio2, A3 copia e trascina a destra fino a H3 e tiri giù alla bisogna la seguente:

    =SE.ERRORE(INDICE(Foglio1!A$3:A$15;AGGREGA(14;6;(RIF.RIGA(Foglio1!$A$3:$A$15)-2)/(Foglio1!$D$3:$D$15+Foglio1!$E$3:$E$15/100+Foglio1!$F$3:$F$15/1000+Foglio1!$G$3:$G$15/10000+Foglio1!$H$3:$H$15/100000+RIF.RIGA(Foglio1!$A$3:$A$15)/1000000=GRANDE(Foglio1!$D$3:$D$15+Foglio1!$E$3:$E$15/100+Foglio1!$F$3:$F$15/1000+Foglio1!$G$3:$G$15/10000+Foglio1!$H$3:$H$15/100000+RIF.RIGA(Foglio1!$A$3:$A$15)/1000000;RIGHE(Foglio1!$D$3:$D3)));1));"")

    In Foglio1, K13 copia e trascina a destra fino a R13 e tiri giù alla bisogna la seguente:

    =SE.ERRORE(INDICE(Foglio2!A$3:A$15;AGGREGA(15;6;((RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1)*(FREQUENZA(CONFRONTA(Foglio2!$A$3:$A$15;Foglio2!$A$3:$A$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))))/(FREQUENZA(CONFRONTA(Foglio2!$A$3:$A$15;Foglio2!$A$3:$A$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))*(Foglio2!$C$3:$C$15="Gara"));RIGHE(Foglio2!$A$3:$A3)));"")

    Allego il file di prova.
    Cia.
    File Allegati File Allegati

  30. I seguenti utenti hanno dato un "Like"

    ges

  31. #22
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    Grazie Ges, sto provando ad applicarla e a ritoccarla
    ciao

  32. #23
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    Ciao Pkrome59, poi provo anche la tua soluzione. Intanto grazie. ciao

  33. #24
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133

    Re: Classifica con più prove dello stesso partecipante

    Ciao Alfetto, nel file allegato ho inserito due classifiche distinte, una per tiratori e l'altra per cacciatori.

    In B19 Foglio1:
    =SE.ERRORE(INDICE(Foglio2!S$3:S$15;AGGREGA(15;6;((RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1)*(FREQUENZA(CONFRONTA(Foglio2!$S$3:$S$15;Foglio2!$S$3:$S$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))))/(FREQUENZA(CONFRONTA(Foglio2!$S$3:$S$15;Foglio2!$S$3:$S$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))*(Foglio2!$U$3:$U$15="Gara")*(Foglio2!$T$3:$T$15="Tiratore"));RIGHE(Foglio2!$A$3:$A3)));"")

    In L19 Foglio1:
    =SE.ERRORE(INDICE(Foglio2!J$3:J$15;AGGREGA(15;6;((RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1)*(FREQUENZA(CONFRONTA(Foglio2!$J$3:$J$15;Foglio2!$J$3:$J$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))))/(FREQUENZA(CONFRONTA(Foglio2!$J$3:$J$15;Foglio2!$J$3:$J$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))*(Foglio2!$L$3:$L$15="Gara")*(Foglio2!$K$3:$K$15="Cacciatore"));RIGHE(Foglio2!$A$3:$A3)));"")

    Entrambe da tirare a destra e successivamente giù alla bisogna.
    Allego il file di prova.
    Ciao.
    File Allegati File Allegati

  34. I seguenti 3 utenti hanno dato un "Like" a pkrome59 per questo post:


  35. #25
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    Grazie ragazzi per il supporto, adesso dovrei farcela da solo.

  36. #26
    L'avatar di Canapone
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Firenze
    Messaggi
    1075
    Versione Office
    2010 su Win
    Likes ricevuti
    598
    Likes dati
    202

    Re: Classifica con più prove dello stesso partecipante

    Ciao a tutti,

    fuori tempo massimo prendo spunto dalle formule di Ges e Pkrome59 (un caro saluto).

    Mi sono servito del file di Pkrome59 e di una colonna di servizio (che ho cercato di eliminare).

    In L3 per creare la classifica "avulsa" e fare gran parte del lavoro sporco

    =(D3+E3/10^2+F3/10^3+G3/10^4+H3/10^5+10^6*(B3="Tiratore"))*(C3="gara")*(AGGREGA(14;6;$D$3:$D$15/((A$3:A$15=A3)*(B$3:B$15=B3));1)=D3)

    In B19 da copiare a destra ed in basso:

    =SE(RIGHE($1:1)<=CONTA.SE($L$3:$L$15;">"&10^6);INDICE(A$3:A$15;CONFRONTA(GRANDE($L$3:$L$15;RIGHE($1:1));$L$3:$L$15;0));"")

    In L19 da copiare a destra ed in basso:

    =SE(RIGHE($1:1)<=CONTA.PIÙ.SE($L$3:$L$15;"<"&10^6;$L$3:$L$15;">0");INDICE(A$3:A$15;CONFRONTA(GRANDE(INDICE(($L$3:$L$15<10^6)*$L$3:$L$15;);RIGHE($1:1));$L$3:$L$15;0));"")

    L' "ideona" : aggiungere 1.000.000 ai punteggi dei candidati della prima classifica ( i tiratori).

    Spero sia d'aiuto a soluzioni migliori e che non sia finito totalmente fuori strada.

    ...che bello conoscere il Vba
    File Allegati File Allegati

  37. I seguenti 3 utenti hanno dato un "Like" a Canapone per questo post:


  38. #27
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133

    Re: Classifica con più prove dello stesso partecipante

    Ciao Alfetto, durante la pausa pranzo, mi sono dedicato allo sviluppo del tuo caso. Pensavo di aver ottenuto un risultato apprezzabile, ma giunto a casa ho visto la soluzione proposta da Canapone, che saluto, e sono rimasto scioccato.
    Soluzione geniale, lontano......... dal mio pensare, però il mio sforzo fatto per ottenere ciò che ritenevo essere una soluzione, ritengo meriti di essere postata.
    Per cui superato lo schok iniziale, allego il file che giudicavo essere finale.

    In L3:
    =SE.ERRORE(INDICE(Foglio2!A$3:A$15;AGGREGA(15;6;((RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1)*(FREQUENZA(CONFRONTA(Foglio2!$A$3:$A$15&Foglio2!$B$3:$B$15;Foglio2!$A$3:$A$15&Foglio2!$B$3:$B$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))))/(FREQUENZA(CONFRONTA(Foglio2!$A$3:$A$15&Foglio2!$B$3:$B$15;Foglio2!$A$3:$A$15&Foglio2!$B$3:$B$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))*(Foglio2!$C$3:$C$15="Gara"));RIGHE(Foglio2!$A$3:$A3)));"")

    In B22:
    =SE.ERRORE(INDICE(Foglio2!S$3:S$15;AGGREGA(15;6;((RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1)*(FREQUENZA(CONFRONTA(Foglio2!$S$3:$S$15;Foglio2!$S$3:$S$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))))/(FREQUENZA(CONFRONTA(Foglio2!$S$3:$S$15;Foglio2!$S$3:$S$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))*(Foglio2!$U$3:$U$15="Gara")*(Foglio2!$T$3:$T$15="Tiratore"));RIGHE(Foglio2!$A$3:$A3)));"")

    In L22:
    =SE.ERRORE(INDICE(Foglio2!S$3:S$15;AGGREGA(15;6;((RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1)*(FREQUENZA(CONFRONTA(Foglio2!$S$3:$S$15;Foglio2!$S$3:$S$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))))/(FREQUENZA(CONFRONTA(Foglio2!$S$3:$S$15;Foglio2!$S$3:$S$15;0);(RIF.RIGA(Foglio2!$A$3:$A$15)-RIF.RIGA(Foglio2!$A$3)+1))*(Foglio2!$U$3:$U$15="Gara")*(Foglio2!$T$3:$T$15="Tiratore"));RIGHE(Foglio2!$A$3:$A3)));"")

    tutte e tre da trascinare a destra per poi tirare giù alla bisogna.
    Allego il file di prova.
    Ciao, alla prossima.
    File Allegati File Allegati

  39. I seguenti 2 utenti hanno dato un "Like" a pkrome59 per questo post:


  40. #28
    L'avatar di Alfetto
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Bergamo
    Età
    47
    Messaggi
    13
    Versione Office
    Excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Re: Classifica con più prove dello stesso partecipante

    Grazie 1000 a tutti. Durante la settimana ho decisamente meno tempo per dedicarmi ai "passatempi".... ma cercherò di provare le vs soluzioni.
    grazie

Discussioni Simili

  1. Risposte: 3
    Ultimo Messaggio: 14/11/16, 22:00
  2. Estrapolare una classifica di categoria da una classifica generale
    Di Albyspace nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 29/09/16, 00:54
  3. Stampare vari range dello stesso foglio
    Di Vincenzo Damiani nel forum Domande su Excel VBA e MACRO
    Risposte: 6
    Ultimo Messaggio: 11/09/16, 23:19
  4. Salvare i dati di un giorno sotto la colonna dello stesso giorno.
    Di Laura Belli nel forum Domande su Excel VBA e MACRO
    Risposte: 12
    Ultimo Messaggio: 26/08/16, 08:51
  5. Avviso agli altri membri dello Staff
    Di Max nel forum Problemi, suggerimenti e Novità del forum
    Risposte: 1
    Ultimo Messaggio: 09/06/16, 13:38

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •