Condividi:        

Allineare più colonne con diversi dati 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

Allineare più colonne con diversi dati in excel

Postdi Coma87 » 24/09/15 10:42

Buongiorno a tutti,

mi sono appena iscritto al forum e ho bisogno del vostro prezioso aiuto.

Per lavoro mi serve allineare i dati delle colonne A,C ed E in modo che tutti i dati vengano allineati in maniera automatica.
Sono all'incirca 80 righe di dati, il problema è che ho un innumerevole numero di fogli excel da elaborare. Allego un'immagine da esempio in modo da farvi capire il problema.

all'inizio i miei dati sono in questo modo...

Immagine
photos upload

questo deve essere il risultato finale...

Immagine
image upload no size limit

Vi ringrazio in anticipo,

Ciao ciao ;)
Coma87
Newbie
 
Post: 4
Iscritto il: 24/09/15 10:34

Sponsor
 

Re: Allineare più colonne con diversi dati in excel

Postdi Anthony47 » 24/09/15 11:35

Ciao Coma87, benvenuto nel forum.
Puoi spiegare quale e' la differenza tra l'input e l'output e quale e' la logica che c'e' dietro?

Ti aspettiamo...
Avatar utente
Anthony47
Moderatore
 
Post: 19183
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Allineare più colonne con diversi dati in excel

Postdi Coma87 » 24/09/15 12:04

L'input è una serie di dati in 3 repliche ai cui nomi (colonne A, C, E) sono associati valori numerici (B, D, F). I nomi sono in ordine
alfabetico.

Quello che mi serve è poter mettere automaticamente nomi uguali (con i conseguenti valori) sulla stessa riga e lasciare vuote le celle senza valori.

Il risultato è quello nell'immagine sotto (la riposto perchè prima era tagliata e non posso più modificare il messaggio)

Immagine
image hosting websites

spero sia stato più chiaro,

grazie! :)
Coma87
Newbie
 
Post: 4
Iscritto il: 24/09/15 10:34

Re: Allineare più colonne con diversi dati in excel

Postdi Coma87 » 24/09/15 15:34

Anthony47 ha scritto:Ciao Coma87, benvenuto nel forum.
Puoi spiegare quale e' la differenza tra l'input e l'output e quale e' la logica che c'e' dietro?

Ti aspettiamo...


Un esempio di quello che voglio intendere è qui ma invece che su 4 colonne totali mi serve su 6 http://answers.microsoft.com/it-it/office/forum/office_2007-excel/excel-affiancare-celle-stessi-valori-di-due/52ee2869-b80b-40fc-85a6-bf7d5a6025ef
Coma87
Newbie
 
Post: 4
Iscritto il: 24/09/15 10:34

Re: Allineare più colonne con diversi dati in excel

Postdi Anthony47 » 26/09/15 00:21

Mah, ho penato un po' cercando l'algoritmo giusto, poi ho ripiegato su questi conteggi che comunque sembrano funzionare:
Codice: Seleziona tutto
Sub rePair()
Dim myArr(), D1 As Long, D2 As Long, D3 As Long, DI1 As Long, DI2 As Long, DI3 As Long, AI As Long
'
Sheets("Foglio1").Select                  '<<<1 Il foglio di partenza
Sheets("OUTPUT").Cells.ClearContents      '<<<2 Il foglio per il riepilogo
last = myLastR(Range("A:F"))
ReDim myArr(1 To last * 3, 1 To 6)
'
AI = 1
For I = 1 To last * 3
    If Cells(I - DI1, "A") = "" Then mya = "ZZZC" Else mya = UCase(Cells(I - DI1, "A"))
    If Cells(I - DI2, "C") = "" Then myc = "ZZZC" Else myc = UCase(Cells(I - DI2, "C"))
    If Cells(I - DI3, "E") = "" Then mye = "ZZZC" Else mye = UCase(Cells(I - DI3, "E"))
    If (mya > myc) Or (mya > mye) Then D1 = 1 Else D1 = 0
    If (myc > mye) Or (myc > mya) Then D2 = 1 Else D2 = 0
    If (mye > mya) Or (mye > myc) Then D3 = 1 Else D3 = 0
    If D1 = 0 Then myArr(AI, 1) = Cells(I - DI1, 1): myArr(AI, 2) = Cells(I - DI1, 2)
    If D2 = 0 Then myArr(AI, 3) = Cells(I - DI2, 3): myArr(AI, 4) = Cells(I - DI2, 4)
    If D3 = 0 Then myArr(AI, 5) = Cells(I - DI3, 5): myArr(AI, 6) = Cells(I - DI3, 6)
    AI = AI + 1
    If (Cells(I - DI1, "A") = "" And Cells(I - DI2, "C") = "" And Cells(I - DI3, "E") = "") Then
        Exit For
    End If
    DI1 = DI1 + D1: DI2 = DI2 + D2: DI3 = DI3 + D3
Next I
Sheets("OUTPUT").Range("A1").Resize(AI - 1, 6).Value = myArr      '<<<2
'
End Sub


Function myLastR(ByRef myArea As Range) As Long
Dim LastR
On Error Resume Next
LastR = myArea.Find(What:="*", After:=myArea.Cells(1, 1), _
      SearchOrder:=xlByRows, _
      SearchDirection:=xlPrevious).Row
On Error GoTo 0
If IsNumeric(LastR) Then myLastR = LastR
End Function

Il codice va su un "Modulo standard" del progetto vba del tuo file: da Excel premi Alt-F11 per aprire l' editor delle macro; Menu /Inserisci /Modulo; copia il codice e incollalo nel frame di dx.
Poi avvierai la macro rePair: da Excel, premi alt-F8, scegli rePair dall' elenco di macro che ti propone, premi Esegui.
La macro assume che i dati di partenza siano in Foglio1, e l'output sara' creato in un foglio nominato OUTPUT, che deve gia' esistere e che sara' AZZERATO SENZA PREAVVISO all'avvio della macro.

Prova e fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19183
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Allineare più colonne con diversi dati in excel

Postdi Coma87 » 28/09/15 09:22

Grazie mille!!

mi hai risolto un sacco di problemi!!!

ciao, a presto :)
Coma87
Newbie
 
Post: 4
Iscritto il: 24/09/15 10:34


Torna a Applicazioni Office Windows


Topic correlati a "Allineare più colonne con diversi dati in excel":


Chi c’è in linea

Visitano il forum: Nessuno e 45 ospiti