Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Riposizionare dati in colonna in riga

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] Riposizionare dati in colonna in riga

Postdi dp8 » 14/01/14 15:51

Salve,
vi chiedo un aiuto per un lavoro che devo fare su un file Excel.
Attualmente il file è cosi costruito:

Cella A1=A2=A3=X dove B1=a, B2=b e B3=c

Io vorrei fare in modo che il dato distribuito su tre righe venga ridistribuito su di una sola, ovvero:

Cella A1=X con B1=a, C1=b e D1=c

Esiste una formula che mi consente di ottenere questo risultato?

Grazie
dp8
Utente Junior
 
Post: 11
Iscritto il: 07/11/12 12:07

Sponsor
 

Re: [Excel] Riposizionare dati in colonna in riga

Postdi Anthony47 » 14/01/14 23:41

Hummmm...
Attualmente il file è cosi costruito:
Cella A1=A2=A3=X dove B1=a, B2=b e B3=c
Io vorrei fare in modo che il dato distribuito su tre righe venga ridistribuito su di una sola, ovvero:
Cella A1=X con B1=a, C1=b e D1=c

Per comprendere "meglio" ti chiederei uno screenshot esemplificativo; per come fare guarda qui: viewtopic.php?f=26&t=80395#p466013.

Ciao, ti aspettiamo.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Riposizionare dati in colonna in riga

Postdi Flash30005 » 15/01/14 03:07

Ho considerato due fogli ("Foglio1" con i dati iniziali e "Foglio2" con i dati destinazione)
inserisci questa macro in un modulo, accertati che il nome dei fogli della macro corrispondano al nome effettivo dei tuoi fogli e
avvia la macro
Codice: Seleziona tutto
Sub Trasponi()
UC1 = Worksheets("Foglio1").Cells(1, Columns.Count).End(xlToLeft).Column
UR1 = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
Incr = 0
For RR1 = 1 To UR1
    Worksheets("Foglio1").Range(Cells(RR1, 1), Cells(RR1, UC1)).Copy Destination:=Worksheets("Foglio2").Cells(1, 1 + Incr)
    Incr = Incr + UC1
Next RR1
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Riposizionare dati in colonna in riga

Postdi dp8 » 15/01/14 10:16

Grazie per le risposte, vi metto anche uno screenshot:

Immagine

Cosi si dovrebbe capire meglio com'è strutturato il file, in giallo ho messo i dati che si ripetono e i codici ad essi associati.
dp8
Utente Junior
 
Post: 11
Iscritto il: 07/11/12 12:07

Re: [Excel] Riposizionare dati in colonna in riga

Postdi dp8 » 15/01/14 10:27

Ringrazio Flash30005 per la macro postata.
L'ho provata, m mi restituisce i dati su di un unica riga, io vorrei un risultato di questo tipo se possibile:

Immagine

Grazie per le riposte.
dp8
Utente Junior
 
Post: 11
Iscritto il: 07/11/12 12:07

Re: [Excel] Riposizionare dati in colonna in riga

Postdi Anthony47 » 16/01/14 03:26

Ho dovuto sciupare 3 minuti del mio tempo perche' la seconda tabella e' illegibile, quindi ho dovuto immaginare cosa contenesse la colonna A; mentre sarebbe bastato un doppioclick prima di salvare l' immagine...

Prova questa macro:
Codice: Seleziona tutto
Sub xdp8()
'vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=100999
Dim Dest As String, I As Long, myMatch
'
Dest = "Foglio2"     '<<< Il foglio dove si creera' la tabella
'
Sheets(Dest).Cells.ClearContents      '*** VEDI TESTO!!!
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    If Application.WorksheetFunction.CountIf(Sheets(Dest).Range("A:A"), Cells(I, 1).Value) = 0 Then
        Sheets(Dest).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Cells(I, 1)
        Sheets(Dest).Cells(Rows.Count, 1).End(xlUp).Offset(0, 1).Value = Cells(I, 2)
    Else
        myMatch = Application.Match(Cells(I, 1).Value, Sheets(Dest).Range("A:A"), 0)
        If IsError(myMatch) Then
            MsgBox ("Errore impossibile ma vero; procedura abortita")
            Exit Sub
        Else
            Sheets(Dest).Cells(myMatch, Columns.Count).End(xlToLeft).Offset(0, 1) = Cells(I, 2).Value
        End If
    End If
Next I
End Sub
Si ipotiza che la tabella di origine sia in colonna A e B; l' elenco riepilogativo viene creato nel foglio indicato nell' istruzione marcata <<<, che personalizzerai come da tue preferenze. Il foglio deve gia' esistere, e SARA' AZZERATO SENZA NESSUN PREAVVISO all' avvio della macro; se questo non ti soddisfa, allora elimina l' istruzione marcata ***, e i nuovi dati saranno accodati a quanto gia' presente nel foglio di destinazione (il calcolo delle righe occupate e' pero' fatto esaminando la sola colonna A).

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Riposizionare dati in colonna in riga

Postdi dp8 » 17/01/14 10:11

Scusa Anthony47, hai ragione nella fretta non ho ridimensionato la cella, sotto l'immagine corretta:

Immagine

Ho testato la tua macro e funziona perfettamente.
Il risultato che ottengo è proprio quello che volevo.
Ti ringrazio tantissimo per aver risolto il mio problema.
Grazie
Ciao
dp8
Utente Junior
 
Post: 11
Iscritto il: 07/11/12 12:07


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Riposizionare dati in colonna in riga":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti