Risultati da 1 a 21 di 21

Discussione: Aggregare righe composte da celle non nulle



  1. #1
    L'avatar di mdf91
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    torino
    Messaggi
    26
    Versione Office
    2016 MAC
    Likes ricevuti
    0
    Likes dati
    0

    Aggregare righe composte da celle non nulle

    Sono nuovo del forum, ho cercato una soluzione al mio problema nei vari thread senza però venirne a capo.
    Sto effettuando un lavoro su un foglio excel con un numero enorme di dati; vorrei trovare un modo per poter raggruppare tutte
    le righe che presentano valori non nulli nelle stesse colonne.
    Ad es.
    3 0 1
    0 1 0
    2 0 1
    7 1 5
    0 2 0

    Il mio obiettivo è raggruppare le righe simili, quindi prendendo la tabella d'esempio mettere insieme la riga 1 con quella 3(gruppo1), la riga 2 con la 5 (gruppo2) e così via.
    Invia MPPM 

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: Aggregare righe composte da celle non nulle

    Ciao,
    allega un file d'esempio con la situazione iniziale ed il risultato che vorresti ottenere (scritto manualmente).

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  3. #3
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1125

    Re: Aggregare righe composte da celle non nulle

    Ciao mdf, benvenuto in forumexcel
    Prova a mettere un piccolo allegato di esempio con poche righe e colonne, giusto il necessario, e poi metti anche il risultato finale atteso scritto a mano cosi da capire meglio
    Cerca di essere piu chiaro possibile specificando dove vuoi le formule, ciao

    EDIT
    Ciao Tore, abbiamo detto la stessa cosa hahah
    Invia MPPM 

  4. #4

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: Aggregare righe composte da celle non nulle

    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    EDIT
    Ciao Tore, abbiamo detto la stessa cosa hahah

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  5. #5
    L'avatar di mdf91
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    torino
    Messaggi
    26
    Versione Office
    2016 MAC
    Likes ricevuti
    0
    Likes dati
    0

    Re: Aggregare righe composte da celle non nulle

    Ho allegato un breve esempio; il mio obiettivo è trovare a quale ciclo produttivo appartiene ciascun prodotto.
    Prendendo spunto dall'esempio che ho caricato:
    _ogni riga rappresenta il ciclo seguito da un prodotto
    _ciascuna colonna indica il tempo per ogni lavorazione
    _la colonna finale indica i cicli produttivi presenti in fabbrica (mio obiettivo)
    N.B. Quando il tempo lavorazione vale zero quel prodotto non subirà quella certa lavorazione.
    Quindi, dal momento che ogni riga rappresenta il ciclo seguito da un prodotto, 2 prodotti che apparterranno allo stesso ciclo avranno
    celle non nulle nelle stesse colonne(lavorazioni).
    L'esempio è risolto in quanto composto di pochi dati: i prodotti 1 e 3 appartengono allo stesso ciclo (ciclo num. 1) come anche i prodotti 2 e 5
    che appartengono al ciclo 2.
    Io vorrei trovare un modo per far effettuare automaticamente questo controllo al programma tramite una funzione.

    Nell'esempio ho riportato una situazione estremamente semplificata, nel mio caso particolare le colonne e le righe sono
    infinitamente di più, proprio per questo motivo una verifica riga per riga è pressoché impossibile.
    File Allegati File Allegati
    Invia MPPM 

  6. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7108
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296

    Re: Aggregare righe composte da celle non nulle

    Ciao mdf91,
    giuro che non ci ho capito nulla!!!!
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!
    Invia MPPM 

  7. #7

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: Aggregare righe composte da celle non nulle

    Ciao a tutti,

    credo di aver capito "il problema", ma credo anche che nel file allegato manchi una sorta di legenda per capire che numero di "ciclo produttivo" assegnare ai vari prodotti in base alle lavorazioni non effettuate.

    Ad esempio come nell'immagine sotto:



    dove le "X" stanno ad indicare la lavorazione non effettuata.

    Ho provato prima con le formule (in pratica il confronto di una riga con una serie di righe), ma dopo i primi accenni di mal di testa ho abbandonato.
    Se non ricordo male... Canapone (che saluto), in un altro forum aveva fatto qualcosa del genere (utilizzando anche il CONTA.SE come matrice), ma non riesco a trovare quella discussione. Spero gli capiti sotto mano questo thread

    Quindi ho optato per il VBA.

    I calcoli li fatti con le "variabili matrici" per rendere il tutto più veloce (in previsione di molti dati):

    Codice: 
    Option Explicit
    
    
    Sub Numero_Ciclo()
    Dim uRiga As Long, uCol As Long, Wks As Worksheet
    Dim i As Long, j As Long, x As Long
    Dim Dati(), Legenda(), Conta As Long
    
    
    Set Wks = Worksheets("Foglio1")
    
    
    With Wks
        .Range("K2:K" & Rows.Count).ClearContents
        uRiga = .Range("A" & Rows.Count).End(xlUp).Row
        uCol = .Range("B1").End(xlToRight).Column - 2
        ReDim Dati(1 To uRiga - 1, 1 To uCol + 1)
        ReDim Legenda(1 To 3, 1 To uCol)
        
        'Riempimento matrice "Dati"
        For i = 2 To uRiga
            For j = 2 To uCol + 1
                If Cells(i, j).Value = 0 Then
                    Dati(i - 1, j - 1) = 1
                Else
                    Dati(i - 1, j - 1) = 0
                End If
            Next j
        Next i
        
        'Riempimento matrice "Legenda"
        For i = 4 To 6
            For j = Range("N4").Column To Range("N4").Column + uCol - 1
                If UCase(Cells(i, j).Value) = "X" Then
                    Legenda(i - 3, j - Range("N4").Column + 1) = 1
                Else
                    Legenda(i - 3, j - Range("N4").Column + 1) = 0
                End If
            Next j
        Next i
        
        'Confronto delle righe delle 2 matrici (Dati e Legenda)
        For i = 1 To uRiga - 1
            For x = 1 To 3
                Conta = 0
                For j = 1 To uCol
                    If Dati(i, j) = Legenda(x, j) Then
                        Conta = Conta + 1
                    End If
                Next j
                'Se le righe sono uguali, prendo l'indice della variabile "x"
                'che corrisponde al "numero di ciclo produttivo" nella
                'tabella/legenda presente nel foglio
                If Conta = uCol Then
                    Dati(i, uCol + 1) = x
                    GoTo prossimo
                End If
            Next x
    prossimo:
        Next i
        'Copio i risultati nella colonna K
        For i = 2 To uRiga
            .Range("K" & i).Value = Dati(i - 1, uCol + 1)
        Next i
        
    End With
    
    
    Set Wks = Nothing
    Erase Dati()
    Erase Legenda()
    MsgBox "Fatto!"
    End Sub
    Il codice è associato al pulsante "Ciclo Produttivo".
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  8. #8

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: Aggregare righe composte da celle non nulle

    Alla fine credo di esserci riuscito con le formule.... anche se non è il metodo che avevo pensato all'inizio.

    Sempre considerando la tabella/legenda aggiunta, nella cella K2 (da copiare poi in basso):

    =CONFRONTA(9;FREQUENZA((($B2:$J2=0)=($N$4:$V$6="X"))*RIF.RIGA($A$1:$A$3);RIF.RIGA($A$1:$A$4)-1);0)-1

    Riallego il file:
    nel "Foglio1" viene usato il VBA
    nel foglio "Formule".... la formula scritta prima.
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  9. I seguenti 2 utenti hanno dato un "Like" a cromagno per questo post:


  10. #9
    L'avatar di mdf91
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    torino
    Messaggi
    26
    Versione Office
    2016 MAC
    Likes ricevuti
    0
    Likes dati
    0

    Re: Aggregare righe composte da celle non nulle

    Allora innanzitutto ti ringrazio per l'aiuto, sei stato veramente molto gentile. Mi scuso inoltre per non essere stato troppo chiaro.
    il mio foglio consta di circa 60 colonne (l'azienda in questione può effettuare 60 lavorazioni diverse) e più di 20000 prodotti
    (praticamente il database degli ultimi 5 anni) per questo motivo ho inserito un esempio semplificato.
    Il database non è ordinato ed il mio obiettivo sarebbe proprio quello di ordinarlo in base ai cicli produttivi; ottenere quindi famiglie di prodotti che subiscono le stesse lavorazioni (= seguono lo stesso ciclo produttivo). Lavorando a commessa, all'interno dell'azienda vi sono moltissimi cicli produttivi che possono differire anche di una sola lavorazione: io non li conosco a priori, proprio per questo motivo non ho inserito una legenda.
    Quindi sì, scandagliare prima il file per creare una legenda e poi scorrerlo assegnando ogni prodotto al corrispettivo ciclo dovrebbe essere la soluzione
    migliore.
    Invia MPPM 

  11. #10

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: Aggregare righe composte da celle non nulle

    Citazione Originariamente Scritto da mdf91 Visualizza Messaggio
    Allora innanzitutto ti ringrazio per l'aiuto, sei stato veramente molto gentile. Mi scuso inoltre per non essere stato troppo chiaro.
    il mio foglio consta di circa 60 colonne (l'azienda in questione può effettuare 60 lavorazioni diverse) e più di 20000 prodotti
    (praticamente il database degli ultimi 5 anni) per questo motivo ho inserito un esempio semplificato.
    Il database non è ordinato ed il mio obiettivo sarebbe proprio quello di ordinarlo in base ai cicli produttivi; ottenere quindi famiglie di prodotti che subiscono le stesse lavorazioni (= seguono lo stesso ciclo produttivo). Lavorando a commessa, all'interno dell'azienda vi sono moltissimi cicli produttivi che possono differire anche di una sola lavorazione: io non li conosco a priori, proprio per questo motivo non ho inserito una legenda.
    Quindi sì, scandagliare prima il file per creare una legenda e poi scorrerlo assegnando ogni prodotto al corrispettivo ciclo dovrebbe essere la soluzione
    migliore.
    Quindi il problema reale sarebbe creare quella legenda che io ho creato a priori, assegnando arbitrariamente il "numero" dei cicli (nel senso, quei cicli 1,2 e 3 potrei chiamarli 11,12 e 13, l'importante è che siano suddivisi in base alle lavorazioni non effettuate)?
    Anche perchè senza legenda, quindi senza sapere che numero di ciclo assegnare, non credo sia possibile fare quello che chiedi.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  12. #11
    L'avatar di mdf91
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    torino
    Messaggi
    26
    Versione Office
    2016 MAC
    Likes ricevuti
    0
    Likes dati
    0

    Re: Aggregare righe composte da celle non nulle

    il nome (o numero) del ciclo può essere dato arbitrariamente. Ammetto di non conoscere il linguaggio necessario per scrivere una macro.
    L'unico linguaggio di programmazione che conosco è il C. Esercitandomi in passato ero incappato in problemi simili; la mia domanda è questa,
    é possibile creare una macro che scandaglia tutto il file creando una legenda? Non si potrebbe procedere con una serie di cicli annidati coi quali confrontare le righe tra loro ?
    Invia MPPM 

  13. #12

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: Aggregare righe composte da celle non nulle

    Citazione Originariamente Scritto da mdf91 Visualizza Messaggio
    il nome (o numero) del ciclo può essere dato arbitrariamente. Ammetto di non conoscere il linguaggio necessario per scrivere una macro.
    L'unico linguaggio di programmazione che conosco è il C. Esercitandomi in passato ero incappato in problemi simili; la mia domanda è questa,
    é possibile creare una macro che scandaglia tutto il file creando una legenda? Non si potrebbe procedere con una serie di cicli annidati coi quali confrontare le righe tra loro ?
    Si... bisogna vedere quanto impiegheranno questi "cicli annidati" a controllare ripetutamente 20000 e più righe per 60 colonne....

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  14. #13
    L'avatar di mdf91
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    torino
    Messaggi
    26
    Versione Office
    2016 MAC
    Likes ricevuti
    0
    Likes dati
    0

    Re: Aggregare righe composte da celle non nulle

    Ok capito, ti ringrazio ancora molto per l'aiuto! Proverò a inventarmi qualcosa!
    Invia MPPM 

  15. #14
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133

    Re: Aggregare righe composte da celle non nulle

    Ciao mdf91, basandomi sul modello di tre processi di lavorazione, avevo cercato di dare una soluzione al tuo problema, apprendo adesso che le lavorazioni sono 60, per cui il lavoro si complica molto, comunque sempre con riferimento al modello a tre processi, avevo prodotto la seguente:

    In F2:
    =SE.ERRORE(INDICE($A$2:$A$17;AGGREGA(15;6;(RIF.RIGA($B$2:$B$17)-RIF.RIGA($B$2)+1)/(($B$2:$B$17<>0)*($C$2:$C$17<>0)*($D$2:$D$17<>0));RIGHE($B$2:$B2));COLONNE($B$2:B$2));SE.ERRORE(INDICE($A$2:$A$17;AGGREGA(15;6;(RIF.RIGA($B$2:$B$17)-RIF.RIGA($B$2)+1)/(($B$2:$B$17<>0)*($C$2:$C$17=0)*($D$2:$D$17<>0));RIGHE($B$2:$B2));COLONNE($B$2:B$2)-1);SE.ERRORE(INDICE($A$2:$A$17;AGGREGA(15;6;(RIF.RIGA($B$2:$B$17)-RIF.RIGA($B$2)+1)/(($B$2:$B$17=0)*($C$2:$C$17=0)*($D$2:$D$17<>0));RIGHE($B$2:$B2));COLONNE($B$2:B$2)-2);SE.ERRORE(INDICE($A$2:$A$17;AGGREGA(15;6;(RIF.RIGA($B$2:$B$17)-RIF.RIGA($B$2)+1)/(($B$2:$B$17<>0)*($C$2:$C$17=0)*($D$2:$D$17=0));RIGHE($B$2:$B2));COLONNE($B$2:B$2)-3);SE.ERRORE(INDICE($A$2:$A$17;AGGREGA(15;6;(RIF.RIGA($B$2:$B$17)-RIF.RIGA($B$2)+1)/(($B$2:$B$17=0)*($C$2:$C$17<>0)*($D$2:$D$17<>0));RIGHE($B$2:$B2));COLONNE($B$2:B$2)-4);SE.ERRORE(INDICE($A$2:$A$17;AGGREGA(15;6;(RIF.RIGA($B$2:$B$17)-RIF.RIGA($B$2)+1)/(($B$2:$B$17<>0)*($C$2:$C$17<>0)*($D$2:$D$17=0));RIGHE($B$2:$B2));COLONNE($B$2:B$2)-5);SE.ERRORE(INDICE($A$2:$A$17;AGGREGA(15;6;(RIF.RIGA($B$2:$B$17)-RIF.RIGA($B$2)+1)/(($B$2:$B$17=0)*($C$2:$C$17<>0)*($D$2:$D$17=0));RIGHE($B$2:$B2));COLONNE($B$2:B$2)-6);"" )))))))

    da trascinare verso destra e successivamente da tirare giù.
    Allego il file di prova e fammi sapere se ho interpretato bene il tuo obiettivo, poi risorse della CPU permettendo si potrebbe tentare di sviluppare la formula per le 60 lavorazioni.
    Rimango in attesa, fermo restando che qualsiasi intervento da parte degli amici del forum è ben accetto.
    File Allegati File Allegati
    Invia MPPM 

  16. I seguenti 5 utenti hanno dato un "Like" a pkrome59 per questo post:


  17. #15

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6747
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: Aggregare righe composte da celle non nulle

    @ pkrome59

    Pippo un giorno o l'altro mi piacerebbe capire come diavolo fai a "concepire" formule così lunghe/complicate.

    Io che per le formule son quasi negato rimango sbalordito da tanta bravura.

    Veramente complimenti.

    Alfredo
    Invia MPPM 

  18. #16
    L'avatar di mdf91
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    torino
    Messaggi
    26
    Versione Office
    2016 MAC
    Likes ricevuti
    0
    Likes dati
    0

    Re: Aggregare righe composte da celle non nulle

    Si concettualmente è giusto, il problema è che io non possiedo una legenda dei cicli produttivi. Quindi dovrei prima determinare questa legenda e poi fare un confronto riga per riga, inserendole poi sotto il ciclo giusto.
    Il file precisamente presenta 20740 righe e le colonne vanno fino ad AX.
    Un altra possibile soluzione che mi è balenata per la mente sarebbe quella di numerare tutte le colonne(cioè le fasi di lavorazione) e poi per ogni riga effettuare moltiplicazioni di quei numeri,cella per cella solo per le celle diverse da zero: questo procedimento ovviamente può portare ad errori nella formazione delle famiglie ma è molto semplice.
    A me però sfugge il modo con cui far sì che la moltiplicazione sia effettuata solo per celle diverse da zero.
    allego esempio
    File Allegati File Allegati
    Invia MPPM 

  19. #17
    L'avatar di Pitagora
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Milano
    Età
    54
    Messaggi
    779
    Versione Office
    WIN , 2013 2016
    Likes ricevuti
    318
    Likes dati
    1

    Re: Aggregare righe composte da celle non nulle

    Buona Sera

    g3=PRODOTTO(SE(B3:F3<>0;$B$1:$F$1)) control +shift+enter copia in basso

    Saluti
    Window 8.1 Excel 2013/2016
    Invia MPPM 

  20. I seguenti 2 utenti hanno dato un "Like" a Pitagora per questo post:


  21. #18

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: Aggregare righe composte da celle non nulle

    Citazione Originariamente Scritto da mdf91 Visualizza Messaggio
    Si concettualmente è giusto, il problema è che io non possiedo una legenda dei cicli produttivi. Quindi dovrei prima determinare questa legenda e poi fare un confronto riga per riga, inserendole poi sotto il ciclo giusto.
    Il file precisamente presenta 20740 righe e le colonne vanno fino ad AX.
    Ciao a tutti,

    il codice per "recuperare" i numeri dei cicli, potrebbe essere questo (nel modulo "Legenda" nel file):

    Codice: 
    Option Explicit
    Dim uRiga As Long, uCol As Long, Wks1 As Worksheet, Wks2 As Worksheet
    Dim i As Long, j As Long, x As Long
    Dim Dati(), Legenda(), Conta As Long, Ciclo As Long, inizio
    
    
    Sub Crea()
    inizio = Timer
    Set Wks1 = Worksheets("Dati")
    x = Time - inizio
    Set Wks2 = Worksheets("Legenda Cicli")
    
    
    With Wks1
        uRiga = .Range("A" & Rows.Count).End(xlUp).Row
        uCol = .Range("B1").End(xlToRight).Column - 2
        .Range(.Cells(2, uCol + 2), .Cells(Rows.Count, uCol + 2)).ClearContents
        ReDim Dati(1 To uRiga - 1, 1 To uCol + 2)
        
        'ucol +1 sarà la colonna della matrice "Dati" per la verifica
        'ucol +2 per il "numero ciclo"
        
        'Riempimento matrice "Dati"
        For i = 2 To uRiga
            For j = 2 To uCol + 1
                If Cells(i, j).Value = 0 Then
                    Dati(i - 1, j - 1) = 1
                Else
                    Dati(i - 1, j - 1) = 0
                End If
            Next j
        Next i
        
        'Riempio la colonna di verifica e di "numero ciclo" della matr. "Dati"
        Ciclo = 1
        For i = 1 To uRiga - 1
            If Not IsEmpty(Dati(i, uCol + 2)) Then
                GoTo stesso
            Else
                Dati(i, uCol + 2) = Ciclo
            End If
            
            For x = i + 1 To uRiga - 1
                Conta = 0
                For j = 1 To uCol
                    If Dati(i, j) = Dati(x, j) Then
                        Conta = Conta + 1
                    Else
                        GoTo prossimo
                    End If
                Next j
    prossimo:
                If Conta = uCol Then
                    Dati(x, uCol + 2) = Ciclo
                End If
            Next x
            Ciclo = Ciclo + 1
    stesso:
        Next i
    End With
    
    
    For i = 2 To uRiga
        Cells(i, uCol + 2).Value = Dati(i - 1, uCol + 2)
    Next i
    
    
    MsgBox "Finito in " & Timer - inizio & " secondi!"
    End Sub
    La legenda non l'ho creata per il semplice motivo che non è servita (volendo si può ricavare in seguito all'esecuzione del codice sopra).

    Ti allego 2 file....
    nel primo ("Ciclo Produttivo e Legenda - esempio") ci sono solo 20 prodotti e qualche colonna, ma puoi verificare se il risultato è quello che intendevi.

    Nel secondo file ("Ciclo Produttivo e Legenda") ci sono 22000 prodotti e le colonne arrivano fino alla BA (nella BB c'è il numero ciclo).
    Col mio pc ci mette circa 2 minuti ad eseguirlo (durante l'esecuzione, può sembrarti che excel si sia bloccato.... non è così, sta continuando a lavorare).
    Ho dovuto "forzare" qualche riga uguale (nei primi 10 prodotti e nel 22000esimo) altrimenti i codici erano tutti diversi.

    P.S.
    Per ordinare i dati in base al "numero di ciclo", credo che tu lo sappia fare... al massimo si può integrare quest'operazione nel codice.

    Fammi sapere

    Ciao
    Tore


    Secondo file:
    http://www.fileconvoy.com/dfl.php?id...ae0d237f29584d
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  22. I seguenti utenti hanno dato un "Like"


  23. #19
    L'avatar di mdf91
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    torino
    Messaggi
    26
    Versione Office
    2016 MAC
    Likes ricevuti
    0
    Likes dati
    0

    Re: Aggregare righe composte da celle non nulle

    Ho appena provato il foglio di calcolo. Funziona perfettamente! Grazie!!
    Invia MPPM 

  24. #20
    L'avatar di mdf91
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    torino
    Messaggi
    26
    Versione Office
    2016 MAC
    Likes ricevuti
    0
    Likes dati
    0

    Re: Aggregare righe composte da celle non nulle

    Ciao a tutti nuovamente, mi sono imbattuto in una nuova problematica che non riesco a risolvere.
    Sto cercando di creare una macro che mi permetta di calcolare la media dei costi di produzione di prodotti identici(cioè con le stesse caratteristiche).
    Oggi ho provato a scriverne una ma con scarso successo. Uno dei problemi è creato dal fatto che le prime due colonne contengono dati in forma di testo mentre le altre 2 numeri.
    Io vorrei fare sì che la macro per prima cosa scorra il file trovando i prodotti identici (quindi con i dati contenuti nelle 4 colonne uguali) e poi di tutti questi prodotti trovati faccia il calcolo del costo di produzione medio (dato contenuto nella colonna 5 ).
    Allego il testo della mia macro ed un esempio di foglio di testo con quello che voglio ottenere. Il foglio è lo stesso del precedente problema: consta di 21000 righe, tuttavia vorrei far si che la macro potesse funzionare anche in caso di un incremento di dati, le colonne invece sono scese a 5.
    Codice: 
    
    OptionExplicit
    Sub MEDIA_Click()
    Dim area AsLong
    Dim i AsInteger
    Dim j AsInteger
    Dim k AsInteger
    Dim cell1 AsString
    Dim cell2 AsString
    Dim cell3 AsInteger
    Dim cell4 AsInteger
    Dim cell1c AsString
    Dim cell2c AsString
    Dim cell3c AsInteger
    Dim cell4c AsInteger
    Dim control AsInteger
    Dim media AsInteger
    Dim result AsInteger
    Dim final AsInteger
    
    
    
    
    Set area = Worksheets(1).Range(Cells(1, 1), Cells(1, 1).End(xlDown))
    n = area.Rows.Count
    
    
       For i = 2 To n
       media = 0
       result = 0
       media = 0
       final = 0
       k = 0
       control = Cells(i, 6).Value
       If control = 0 Then
       Next i
    Else
         For j = 2 To n
         control = Cells(j, 6).Value
         If control = 0 Then
         Next j
         Else
         cell1 = Cells(i, 1).Value
         cell2 = Cells(i, 2).Value
         cell3 = Cells(i, 3).Value
         cell4 = Cells(i, 4).Value
         cell1c = Cells(j, 1).Value
         cell2c = Cells(j, 2).Value
         cell3c = Cells(j, 3).Value
         cell4c = Cells(j, 4).Value
           If cell1 = cell1c And cell2 = cell2c And cell3 = cell3c And cell4 = cell4c Then
           result = cell(j, 5).Value
           Range(j, 6) = result
           media = media + result
           k = k + 1
           Next j
           Else
           Next j
           End If
      final = media / k
      Range(i, 7) = final
      Next i
    
    
    
    EndSub
    File Allegati File Allegati
    Invia MPPM 

  25. #21

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: Aggregare righe composte da celle non nulle

    Ciao,
    per problemi "nuovi" apri delle nuove discussioni, altrimenti si crea solo confusione con il titolo della discussione (per non parlare della lunghezza...).

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

Discussioni Simili

  1. [Risolto] Aggregare (?)
    Di Mammut65 nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 11/03/17, 22:27
  2. Aggregare dati da fogli diversi
    Di Andrea19 nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 19/02/17, 16:40
  3. Risposte: 6
    Ultimo Messaggio: 23/10/16, 18:02
  4. Copiare celle in una colonna con righe nascoste
    Di Brando nel forum Domande su Excel in generale
    Risposte: 13
    Ultimo Messaggio: 04/07/16, 14:51
  5. Colorare Delle Righe di Celle Alternate
    Di A.Maurizio nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 07/01/16, 21:23

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •