Condividi:        

Excel - copia incolla speciale trasponi da pivot...

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 - copia incolla speciale trasponi da pivot...

Postdi simona76 » 06/05/11 08:18

ciao a tutti
ho un problemi di circa 1000 copia incolla speciale trasponi da una tab pivot... e vorrei evitare di farlo a mano!!! :cry:

la tabella da cui parte la pivot è questa

rapp n
610 4094300
610 4375055
915 94480
915 677598
915 772545
915 6094875
947 96257
947 112576
947 114508
947 2414600
947 6343525
947 6345650
1164 104103
1164 590366
1164 787589
1164 6536210
1164 6536400
1164 6536660
1164 15029593
1164 124243
1313 111612
1313 7323720
1315 81137
1375 96257
1375 112576
...

io devo riuscire ad avere per ogni rap i vari n in riga anzichè in colonna
ho provato con una pivot che mi raggruppa gli n per = rap ma dopo devo fare a manina tutti i copia incolla speciale trasponi per ogni rap con il GROSSO rischio di fare un gran caos

potete aiutarmi???

grazie 1000
simona76
Newbie
 
Post: 5
Iscritto il: 05/05/11 12:16

Sponsor
 

Re: Excel - copia incolla speciale trasponi da pivot...

Postdi Avatar3 » 06/05/11 11:05

Benvenuta nel Forum

Una macro da inserire nel modulo VBA di excel potrebbe essere questa
Codice: Seleziona tutto
Sub Trasponi()
Sheets("Foglio1").Select
UR1 = Range("A" & Rows.Count).End(xlUp).Row
    Range("A1:B" & UR1).Select
    Selection.Copy
    Sheets("Foglio2").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True

End Sub


Nel Foglio1 c'è la tabella originale
nel foglio2 sarà riportata la tabella trasposta in righe ma attenzione se hai una versione di office 2003 o inferiore non potrai inserire più di 256 righe (tante sono le colonne in queste versioni di excel)

Per inserire la macro devi premere ALT+F11 e dal menu inserire un modulo ne quale incollerai il codice qui sopra riportato
lo avvii e otterrai il risultato richiesto

ciao
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Excel - copia incolla speciale trasponi da pivot...

Postdi ricky53 » 06/05/11 12:06

Ciao,
per quello che hai scritto di voler fare non occorre il passaggio attraverso una tabella pivot.

Basta:
1. selezionare l'area dati (delle colonne A e B)
2. copia
3. incolla speciale
4. trasponi

oppure una macro come ti ha suggerito Avatar (trsposizione in codice di quanto ti ho scritto io come passaggi manuali)
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel - copia incolla speciale trasponi da pivot...

Postdi simona76 » 06/05/11 12:14

grazie Avatar3 e ricky53
ma non è quello che vorrei...
quello che ottengo è la trasposizione semplice della mia tabella
ed ho bisogno di altro... ci riprovo!!!
allego il file con quello che ho e quello che dovrebbe diventare


grazie ancora
simona76
Newbie
 
Post: 5
Iscritto il: 05/05/11 12:16

Re: Excel - copia incolla speciale trasponi da pivot...

Postdi simona76 » 06/05/11 12:16

non mi fa inserire il link !!!
simona76
Newbie
 
Post: 5
Iscritto il: 05/05/11 12:16

Re: Excel - copia incolla speciale trasponi da pivot...

Postdi ricky53 » 06/05/11 12:19

Ciao,
Il file è utile ma sarà disponibile per poco tempo e, quindi, gli utenti che leggeranno non potranno capire cosa ti occorreva e come si è risolto.

Prova a spiegare cosa effettivamente ti occorre.

Riporta alcune righe di dati:
a. come li hai
b. come li vorresti


P.S.: leggi la mia firma e ... in particolare la parte in ROSSO
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel - copia incolla speciale trasponi da pivot...

Postdi Anthony47 » 06/05/11 15:11

Se quello che chiedi e' di avere la possibilita' di affiancare al codice di un "rapp", sulla stessa riga, tutti gli "n" presenti in tabella, allora potresti usare questo approccio:
-supponiamo che i tuoi dati siano in Col A e Col B
-ti crei un elenco di rapp presenti nei tuoi dati; lo puoi fare usando Menu /Dati /Filtro /Filtro avanzato. Io l' ho creato da D2 verso il basso
-in E2 inserisci la formula
Codice: Seleziona tutto
=SE(VAL.ERRORE(CERCA.VERT(D2;A:B;2;0));"";CERCA.VERT(D2;A:B;2;0))

-in F2 metti la formula
Codice: Seleziona tutto
=SE(CONTA.SE($A$1:$A$29;$D2)>=RIF.COLONNA(B1);INDICE($B$1:$B$29;PICCOLO(SE(($A$1:$A$29=$D2)+($A$1:$A$29="");RIF.RIGA($A$1:$A$29);"");RIF.COLONNA(B1)));"")
da confermare con Contr-Maiusc-Enter, non col solo Enter.
-copi F2 verso dx per un numero di colonne sufficiente a contenere il numero max di elementi che ti aspetti
-infine copi E2:xy2 verso il basso
Nelle formule, invece di $A$1:$A$29 e $B$1:$B$29 usa un intervallo ce sia superiore a quello che occupano i tuoi dati.
Con i dati che hai citato otterrai un risultato di questo tipo:
Codice: Seleziona tutto
Rapp   N                     
610   4094300   4375055                  
915   94480   677598   772545   6094875            
947   96257   112576   114508   2414600   6343525   6345650      
1164   104103   590366   787589   6536210   6536400   6536660   15029593   124243
1313   111612   7323720                  
1315   81137                     
1375   96257   112576                  

Se hai problemi di prestazione per l' uso di formule a matrice allora si fara' tramite macro: ci sono state varie richieste analoghe, ti segnalero' un link da cui partire.

Se invece vuoi ottenere una cosa diversa, allora descrivi ancora e usa il file o lo screenshot dei dati come "complemento" alla descrizione.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel - copia incolla speciale trasponi da pivot...

Postdi simona76 » 06/05/11 19:51

Anthony47 sei un mito...
mi sembrava di aver spiegato bene quello che dovevo fare e la tua risposta è azzeccatissima
lunedì provo e vediamo
grazie ancora
ciaooooooooooo :D
simona76
Newbie
 
Post: 5
Iscritto il: 05/05/11 12:16

Re: Excel - copia incolla speciale trasponi da pivot...

Postdi simona76 » 09/05/11 08:58

confermo la "bontà" della risposta... FUNZIONA!!!
Anthony47 finisco di stressarti... la stessa cosa è possibile farla su access...
perchè devo ripeterla un po' di volte e le righe da analizzare sono + di 30.000...
dovrebbe essere veloce... no???

grazie ancora
simona76
Newbie
 
Post: 5
Iscritto il: 05/05/11 12:16

Re: Excel - copia incolla speciale trasponi da pivot...

Postdi Flash30005 » 09/05/11 10:35

30.000 righe non sono molte
prova questa macro in un modulo di excel
Codice: Seleziona tutto
Sub TrasponiN()
Application.ScreenUpdating = False
Application.Calculation = xlManual
Sheets("Foglio2").Cells.ClearContents
UR1 = Sheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
MRapp = 0
Rapp = 0
For RR = 2 To UR1
Rapp = Sheets("Foglio1").Range("A" & RR).Value
If MRapp = Rapp Then
    UR2 = Sheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row
    UC2 = Sheets("Foglio2").Range("IV" & UR2).End(xlToLeft).Column + 1
    Sheets("Foglio2").Cells(UR2, UC2).Value = Sheets("Foglio1").Range("B" & RR).Value
Else
    UR2 = Sheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("Foglio2").Range("A" & UR2).Value = Rapp
    Sheets("Foglio2").Range("B" & UR2).Value = Sheets("Foglio1").Range("B" & RR).Value
MRapp = Rapp
End If
Next RR
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

Ho considerato i dati iniziali nel Foglio1
e quelli "trasposti" nel Foglio2 (in caso di nomi diversi sostituisci i nomi nella macro)

Fai sapere
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 - copia incolla speciale trasponi da pivot...

Postdi ricky53 » 09/05/11 11:47

Ciao Simona,
mi fa piacere che tu abbia risolto.
Inoltre hai avuto due soluzioni: con formule e con macro.

Se posso permettermi un commento e, per far capire casa intendo dire, riporto alcuni scambi.
Io avevo scritto:
Prova a spiegare cosa effettivamente ti occorre.


e tu avevi risposto:
... mi sembrava di aver spiegato bene quello che dovevo fare ...


Poi hai aggiunto
confermo la "bontà" della risposta... FUNZIONA!!!
Anthony47 finisco di stressarti... la stessa cosa è possibile farla su access...
perchè devo ripeterla un po' di volte e le righe da analizzare sono + di 30.000...
dovrebbe essere veloce... no???


Adesso mi viene da dire che non avevi spiegato completamente cosa effettivamente ti occorreva !!!

Questo comporta che si ragiona su condizioni non complete con il rischio di arrivare a risultati che non corrispondono all'esigenza che l'utente ha e ... si deve riprendere i ragionamenti fatti ... con il risultato di arrivare alla soluzione con tempi più lunghi e con maggiore impegno da parte di tutti.

Un caro saluto e buon proseguimento e senza nessun ... ovviamente !!!

Flash: la tua macro mi piace ed è semplice ed efficace; però, anche qui se posso permettermi, utilizzando le "matrici" si velocizzerebbero le operazioni.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "Excel - copia incolla speciale trasponi da pivot...":


Chi c’è in linea

Visitano il forum: Ricky0185 e 40 ospiti