Condividi:        

[excel] da matrice a elenco

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] da matrice a elenco

Postdi bicio13 » 28/04/11 13:21

ciao a tutti, avrei bisogno di una mano;
ho una tabella excel strutturata in questo modo:

l1 d1 l2 d2 l3 d3
xxx 14 15 8 14
yyy 22 15
zzz
kkk 10 15


per poter lavorare i dati (per come avevo strutturato il file access devo trasformarla in questo modo:

l d
xxx 14 15
xxx 8 14
yyy 22 15
zzz
kkk 10 15



qualcuno sa aiutarmi a creare una macro o un qualsiasi altro sistema per riuscirci??
grazie
Fabrizio
bicio13
Utente Junior
 
Post: 10
Iscritto il: 28/04/11 13:13

Sponsor
 

Re: [excel] da matrice a elenco

Postdi Avatar3 » 28/04/11 17:06

Sinceramente non riesco a capire la logica della disposizione dei dati origine con i dati finali :roll:

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] da matrice a elenco

Postdi bicio13 » 28/04/11 17:38

Avatar3 ha scritto:Sinceramente non riesco a capire la logica della disposizione dei dati origine con i dati finali :roll:

ciao


Codice: Seleziona tutto
      l1    d1    l2    d2     l3   d3
xxx   14    15    8     14
yyy   22    15
zzz
kkk   10    15



per poter lavorare i dati (per come avevo strutturato il file access devo trasformarla in questo modo:


Codice: Seleziona tutto
         l       d
xxx      14      15
xxx      8        14
yyy      22      15
zzz
kkk      10      15



dovrebbe essere piu chiaro!!!
grazie
bicio13
Utente Junior
 
Post: 10
Iscritto il: 28/04/11 13:13

Re: [excel] da matrice a elenco

Postdi ricky53 » 28/04/11 22:14

Ciao,
provo a riepilogare:
1. la prima colonna contiene un codice
2. sulla stessa riga in corrispondenza di un valore del codice hai diversi gruppi di due colonne intestate "l1" e "d1", "l2" e "d2", ..., "ln" e "dn"
3. vuoi riportare su più righe per lo stesso codice i vari gruppi di due colonne "l" e "d"
4. alle volte un codice può non avere valori di "l" e "d"
5. non esiste due volte lo stesso codice

Puoi confermare quanto ho scritto.
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] da matrice a elenco

Postdi Anthony47 » 28/04/11 22:45

La mia interpretazione della domanda corrisponde alla seguente macro:
Codice: Seleziona tutto
Sub bicio()
Dest = "K" '<<< La colonna dove creeremo il nuovo elenco
For I = 2 To Cells(Rows.Count, "A").End(xlUp).Row
    J = 1
    Do While Cells(I, J) <> ""
        Cells(I, 1).Copy Destination:=Cells(Rows.Count, Dest).End(xlUp).Offset(1, 0)
        If J = 1 Then J = 2
        Cells(I, J).Range("A1:B1").Copy Destination:=Cells(Rows.Count, Dest).End(xlUp).Offset(0, 1)
        J = J + 2
    Loop
Next I
End Sub

Da excel. Alt-F11 per apriire l' editor delle macro; poi Menu /Inserisci /Modulo; copia il codice e incollalo nel frame di dx. Torna su excel, Alt-F8; scegli "bicio" dall' elenco delle macro che ti propone, premi Esegui.

Verra' creato un nuovo elenco "normalizzato, nella colonna specificata dall' istruzione marcata <<< (che quindi avrai adattato alla tua situazione).

E se non e' cosi' allora spiega nuovamente, magari partendo dalle domande di Ricky.

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

Re: [excel] da matrice a elenco

Postdi ricky53 » 28/04/11 22:46

Ciao,
prova questo codice.
Ipotesi fatte:
1. i dati di partenza sono sul Foglio1, dalla colonna "A" e riga "2" in avanti
2. i dati finali sono scritti sul "Foglio2"

Codice: Seleziona tutto
Sub Dividi_Codici()
    Dim Ws1 As Worksheet
    Dim Ws2 As Worksheet
    Dim I As Integer: Dim J As Integer: Dim K As Integer
   
    Set Ws1 = Sheets("Foglio1")
    Set Ws2 = Sheets("Foglio2")
    UR = Ws1.Range("A" & Rows.Count).End(xlUp).Row
    K = 2
    For I = 2 To UR
        If Ws1.Cells(I, 2) <> "" Then
            UC = Ws1.Range("A" & I).End(xlToRight).Column
            For J = 2 To UC Step 2
                Ws2.Cells(K, 1) = Ws1.Cells(I, 1)
                Ws2.Cells(K, 2) = Ws1.Cells(I, J)
                Ws2.Cells(K, 3) = Ws1.Cells(I, J + 1)
                K = K + 1
            Next J
        Else
            Ws2.Cells(K, 1) = Ws1.Cells(I, 1)
            K = K + 1
        End If
    Next I
End Sub
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] da matrice a elenco

Postdi ricky53 » 29/04/11 00:08

Ciao,
in poco tempo hai avuto due soluzioni, tra l'altro simili.

Due domande:
quante righe devi elaborare ?
Quanti gruppi di "l" e "d" hai, come massimo, per ogni riga ?
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] da matrice a elenco

Postdi bicio13 » 29/04/11 07:16

ciao,
prima di tutto grazie a tutti per le due soluzioni, ho provato la seconda e funziona benissimo!
la macro che avevo provato a scrivere centra poco e nulla!!!
le righe da elaborare sono alcune centinaia (400/500) mentre le colonne per ogni riga sono al massimo 6
grazie ancora!!!
bicio13
Utente Junior
 
Post: 10
Iscritto il: 28/04/11 13:13

Re: [excel] da matrice a elenco

Postdi ricky53 » 29/04/11 09:56

Ciao,
bene e grazie a te per il riscontro.

Le righe sono poche quindi non ci sono problemi prestazionali.

Anche la prima funziona benissimo !!!

Alla prossima.
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] da matrice a elenco":


Chi c’è in linea

Visitano il forum: Nessuno e 51 ospiti