Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Da MATRICE a TRE VETTORI

Ultimo Aggiornamento: 23/02/2016 19:13
Post: 1
Registrato il: 23/02/2016
Città: FIUMICINO
Età: 33
Utente Junior
EXCEL 2013
OFFLINE
23/02/2016 15:31

Ciao a tutti,
ho una matrice del tipo

A B C D
-------------------
1 x y z t
2 u v w s
3 .. .. ... .....

e dovrei riuscire a trasformarla in tre colonne del tipo:

1 A x
1 B y
1 C z
1 D t
2 A u
2 B v
2 C w....etc

come posso fare?

grazie mille !!!
Post: 3.010
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
23/02/2016 16:49

io non ho capito, allega un file di esempio con anche il risultato

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 1
Registrato il: 23/02/2016
Città: FIUMICINO
Età: 33
Utente Junior
EXCEL 2013
OFFLINE
23/02/2016 17:23

Da MATRICE a TRE VETTORI
Allego il file con l'esempio.
Grazie !!
Post: 3.011
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
23/02/2016 18:25

Sub a()
LR = Cells(Rows.Count, "A").End(xlUp).Row
dcol1 = 7 'colonna risultato
drow = 8 ' riga risultato
dcol = dcol1
For r = 8 To 10 'LR
  For c = 2 To 5
    Cells(drow, dcol) = Cells(r, 1)
    dcol = dcol + 1
    Cells(drow, dcol) = Cells(7, c)
    dcol = dcol + 1
    Cells(drow, dcol) = Cells(r, c)
    dcol = dcol1
    drow = drow + 1
  Next

Next
End Sub

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 2
Registrato il: 23/02/2016
Città: FIUMICINO
Età: 33
Utente Junior
EXCEL 2013
OFFLINE
23/02/2016 18:32

Grazie mille.
Ma sono possibili altri metodi usando funzioni Excel e senza scrivere codice ???
Comunque grazie ancora.
Post: 2.085
Registrato il: 27/09/2010
Città: FIRENZE
Età: 61
Utente Veteran
Excel 2010
OFFLINE
23/02/2016 19:13

da range a vettori.

Ciao,

in A14


=SE.ERRORE(INDICE($A$8:$A$10;INT((RIF.RIGA($A1)-1)/CONTA.VALORI($B$7:$E$7))+1);"")

in B14

=SE(A14;INDICE($B$7:$E$7;RESTO(RIF.RIGA(A1)-1;CONTA.VALORI($B$7:$E$7))+1);"")

in C14

=SE.ERRORE(INDICE($B$8:$E$10;CONFRONTA(A14;$A$8:$A$10;0);CONFRONTA(B14;$B$7:$E$7;0));"")

da copiare in basso: il trucco sta nel tarare i conta.valori

Si potrebbe anche sfruttare una tabella pivot: molto più semplicemente.

Saluti

Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 10:15. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com