ELENCO CON DUPLICATI



  • ELENCO CON DUPLICATI
    di smind (utente non iscritto) data: 13/10/2015 18:49:48

    Ciao, ho un problema che all'apparenza mi sembrava banale ma non riesco a trovare una soluzione... Qui sotto esempio:
    Questa la situazione di partenza. In colonna A un serie di dati di cui molti duplicati. In colonna B i valori di riferimento
    colonna A Colonna B
    mario 10
    mario 12
    mario 15
    luigi 5
    luigi 3
    franco 14
    franco 12
    franco 44

    Vorrei arrivare ad ottenere in un nuovo foglio di lavoro in colonna A solo elenco senza duplicati delle chiavi principali e a fianco in B, C, D, ecc... i valori.
    Tipo questo:
    A B C D
    mario 10 12 15
    luigi 5 3
    franco 14 12 44

    Ho provato CERCA VERT ma ovviamente mi prende solo il primo risultato per ogni cambiamento in colonna A. Ho provato altre soluzioni ma nulla... Ovviamente l'esempio è proprio solo un esempio il DB è 50.000 righe
    GRAZIE a chi vorrà aiutarmi



  • di ninai data: 13/10/2015 19:07:42

    ciao
    credo che con 50000 record si debba intervenire con VBA, con formule si può fare ma visti i numerosi record il calcolo potrebbe rallentare.

    i nomi univoci magari li puoi ottenere da menù dati (elimina duplicati) e ci siamo risparmiati una formula pesante, per quanto riguarda i valori, si deve intervenire con formule tipo:
    =indice(....;AGGREGA(15;6;......;colonne(..)) ma senza riferimenti di cella non so darti indicazioni più precisi, allega un file di esempio.



  • di patel data: 13/10/2015 19:50:41

    prova questa
     
    Sub a()
    LR = Cells(Rows.Count, "A").End(xlUp).Row
    num = Cells(1, 1).Value
    lang = Cells(1, 2).Value
    destrow = 1
    icol = 4: col = icol + 1
    Cells(destrow, icol).Value = num
    Cells(destrow, col).Value = lang
    For j = 2 To LR
      If num = Cells(j, 1).Value Then
        col = col + 1
        If col > 9 Then Exit For
        Cells(destrow, col).Value = Cells(j, 2).Value
      Else
        num = Cells(j, 1).Value
        destrow = destrow + 1
        icol = 4: col = icol + 1
        Cells(destrow, icol).Value = Cells(j, 1).Value
        Cells(destrow, col).Value = Cells(j, 2).Value
      End If
    Next
    End Sub