Condividi:        

Affiancare dati presenti su righe diverse in excel

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

Affiancare dati presenti su righe diverse in excel

Postdi micky_med » 29/11/14 13:07

Buongiorno a tutti!
mi sono iscritta a questo sito dopo aver letto vari post e vorrei farvi intanto i complimenti per la disponibilità e la professionalità!
Vorrei sottoporvi un problema con un file di lavoro: ho un file di circa 13000 righe, organizzato in 13 colonne (A-M); i dati sono ordinati in base alla colonna A.

Cod Tx Num ric Data ric DN Sesso Serv Rich data sl Corr md param
AA11BB 1 1123 01-gen-14 01-gen-39 Femmina aa 11 01-gen-14 GB WWW 1234 34
AA11BB 1 4456 28-feb-14 01-gen-39 Femmina aa 12 28-feb-14 GB WWW 54
AA11BB 1 7789 05-mag-14 01-gen-39 Femmina aa 13 05-mag-14 GB WWW 1356 12
CC22DD 6 1111 29-lug-14 13-dic-00 Femmina bb 15 29-lug-14 GB XXX 87
CC22DD 6 2222 22-ott-14 13-dic-00 Femmina bb 17 22-ott-14 GB YYY 1356 56
EE33FF 5 3333 15-gen-15 14-dic-88 Maschio cc 22 15-gen-15 GB XXX 1254 88
EE33FF 5 4444 10-apr-15 14-dic-88 Maschio dd 55 10-apr-15 GB XXX 32
EE33FF 8 5555 04-lug-15 14-dic-88 Maschio ee 77 04-lug-15 GB EEE 54

io dovrei affiancare su una stessa riga i dati identificati dallo stesso "Cod" in colonna 1: in altri termini riferendomi all'esempio qui sopra dovrei allineare le prime 3 righe così da formare un'unica lunga riga con tutti i dati appartenenti a AA11BB, poi le successive 2 per formare la riga di CC22DD e così via..potrei fare un taglia e incolla a mano ovviamente ma per 13000 righe preferirei evitare!
avevo fatto una cosa del genere per righe e pari e dispari un'altra volta ma il problema ora è che lo stesso Cod può essere ripetuto in un numero variabile di righe e quindi non so come fare..
vi ringrazio fin da ora per la disponibilità, spero di essere stata chiara nella spiegazione
grazie!!
Michela
Excel 2010 windows 7
micky_med
Newbie
 
Post: 5
Iscritto il: 29/11/14 11:49

Sponsor
 

Re: Affiancare dati presenti su righe diverse in excel

Postdi micky_med » 29/11/14 13:42

Scusate, mea culpa, si è disallineato l'esempio, forse così è meglio:

Cod-------Tx----NRic---DataRic--------DN-----Sesso--Serv--Rich----data-------sl-----Corr----md---PM
AA11BB----1----112----01/01/14----01/01/39----F----aa----11----01/01/14--GB----AAA----1234---34
AA11BB----1----446----28/02/14----01/01/39----F----aa----12----28/02/14--GB----AAA----1324---54
AA11BB----1----788----05/05/14----01/01/39----F----aa----13----05/05/14--GB----AAA----1356---12
CC22DD----6----111----29/07/14----13/12/00----F----bb----15----29/07/14--GB----XXX----6534---87
CC22DD----6----222----22/10/14----13/12/00----F----bb----17----22/10/14--GB----YYY----1356---56
EE33GG----5----333----15/01/14----14/12/88----M----cc----22----15/01/14--GB----XXX----1254---88
EE33GG----5----444----10/04/14----14/12/88----M----dd----55----10/04/14--GB----XXX----1235---32
EE33GG----8----555----04/08/14----14/12/88----M----ee----77----04/08/14--GB----EEE----4827---54

grazie
Michela
Excel 2010 windows 7
micky_med
Newbie
 
Post: 5
Iscritto il: 29/11/14 11:49

Re: Affiancare dati presenti su righe diverse in excel

Postdi Zer0Kelvin » 29/11/14 15:07

Ciao.
Avresti fatto meglio (e meno fatica, aggiungo) ad allegare un fine di prova in modo da fornire anche una base realistica su cui lavorare.
Per allegare un file puoi utilizzare uno dei tanti siti di hosting come, per es.http://www.filedropper.com.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: Affiancare dati presenti su righe diverse in excel

Postdi micky_med » 29/11/14 18:11

ciao Zer0Kelvin,
ecco dovrei aver fatto l'upload
http://www.filedropper.com/fileprova

<a href=http://www.filedropper.com/fileprova><img src=http://www.filedropper.com/download_button.png width=127 height=145 border=0/></a><br /><div style=font-size:9px;font-family:Arial, Helvetica, sans-serif;width:127px;font-color:#44a854;> <a href=http://www.filedropper.com >File Hosting Online Storage Backup</a></div>

grazie!
Michela
Excel 2010 windows 7
micky_med
Newbie
 
Post: 5
Iscritto il: 29/11/14 11:49

Re: Affiancare dati presenti su righe diverse in excel

Postdi Zer0Kelvin » 30/11/14 13:07

Pupi provare questa macro:
Codice: Seleziona tutto
Public Sub Allinea()
Dim IntervalloA As Range, Cella As Range, RR As Range
Dim CollA As Collection
Dim I As Long
    With Sheets("Foglio1")
        Set IntervalloA = Range(.Range("A2"), .Range("A2").End(xlDown))
        Set CollA = New Collection
        On Error Resume Next
        For Each Cella In IntervalloA
            CollA.Add Cella, CStr(Cella)
        Next Cella
        On Error GoTo 0
        For I = 1 To CollA.Count
            For Each Cella In IntervalloA
                If Cella = CollA(I) Then
                    Range(Cella, Cella.Offset(0, 12)).Copy Destination:=.Cells(CollA(I).Row, .Cells(CollA(I).Row, .Columns.Count).End(xlToLeft).Column + 2)
                End If
            Next Cella
        Next I
    End With
    Set CollA = Nothing
End Sub
La macro copia tutte le righe con codice corrispondente nella prima riga che contiene quel codice.
E' più che altro un esempio provvisorio perchè presumo che tu voglia il risultato compattato in un altro foglio (non hai specificato, però).
Visto il n° di righe coinvolte è anche probabile che occorra ottimizzare la macro.
Specifica dove vuoi che venga scritto il risultato.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: Affiancare dati presenti su righe diverse in excel

Postdi micky_med » 30/11/14 15:23

Grazie grazie grazie Zer0Kelvin,
ho provato col file originale, tenendo tutte le 13000 righe si è un po' impallato, creando dei "sottofile" con meno righe funziona benissimo!
sì avere il risultato compattato in un altro foglio sarebbe il massimo!
Michela
Michela
Excel 2010 windows 7
micky_med
Newbie
 
Post: 5
Iscritto il: 29/11/14 11:49

Re: Affiancare dati presenti su righe diverse in excel

Postdi Zer0Kelvin » 30/11/14 18:20

Se le righe contenenti un determinato codice sono tutte consecutive come nell'esempio, si può usare un algoritmo diverso.
Quello che segue copia le rige su Foglio2:
Codice: Seleziona tutto
Public Sub Allinea2()
Const NumCol = 13
Dim UR As Long, Riga As Long, RigaDest As Long, ColDest As Long
Dim Cella As Variant
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    With Sheets("Foglio1")
        UR = .Range("A" & Rows.Count).End(xlUp).Row
        Riga = 2
        RigaDest = 1
        While Riga <= UR
            Cella = .Cells(Riga, 1)
            ColDest = 1
            Do
                Range(.Cells(Riga, 1), .Cells(Riga, NumCol)).Copy Destination:=Sheets("Foglio2").Cells(RigaDest, ColDest)
                Riga = Riga + 1
                ColDest = ColDest + NumCol
            Loop Until Cella <> .Cells(Riga, 1)
            RigaDest = RigaDest + 1
        Wend
    End With
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
Per 13000 righe dovrebbe impiegare (dipendentemente dalla potenza del del PC utilizzato) due o tre minuti circa.
Se le righe non sono ordinate è possibile usare una variante del codice precedente, oppure ordinare preventivamente la tabella (eventualmente usando un foglio di appoggio).
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: Affiancare dati presenti su righe diverse in excel

Postdi micky_med » 30/11/14 19:36

Sì le righe contenenti un determinato codice sono tutte consecutive come nell'esempio, avevo già ordinato il file in base al codice contenuto nella prima colonna..
usando un PC più potente ho provato il nuovo codice che mi hai scritto e funziona perfettamente, anche con tutte le 13000 righe!
Ti ringrazio moltissimo, mi hai evitato ore e ore di lavoro!
grazie ancora,
Michela
Michela
Excel 2010 windows 7
micky_med
Newbie
 
Post: 5
Iscritto il: 29/11/14 11:49


Torna a Applicazioni Office Windows


Topic correlati a "Affiancare dati presenti su righe diverse in excel":


Chi c’è in linea

Visitano il forum: Nessuno e 53 ospiti