Sommare ed eliminare righe uguale
Hai un problema con Excel? 
Sommare ed eliminare righe uguale
di asdrubale87 data: 02/10/2015 09:58:48
Buongiorno, è da un po che cerco di risolvere un problema con excel, ma non sono riuscito a trovare una valida soluzione:
ho un excel dove lavoro su solo 2 colonne "A" e "B", per esempio:
"A" "B"
a 5
a 3
a 1
b 2
b 3
vorrei che la macro sommasse in "B" tutte le celle che in "A" hanno lo stesso valore, fondendole in un'unica riga, ed ottenere questo risultato:
"A" "B"
a 9
b 5
Avete qualche idea per risolvere questo problema?
sembra una scemenza, ma quando mi capitano 500/600 casi del genere in fogli di oltre 10000 righe è una gran rottura fare tutte queste operazioni a mano.
Grazie.
di Marius44 data: 02/10/2015 10:07:38
Ciao Asdrubale
Se i tuoi dati sono in A1:B5 metti in colonna C l'elenco dei valori che vuoi sommare e in D1 la seguente formula (copiare in basso)
=SOMMA.SE($A$1:$A$5;C1;$B$1:$B$5)
Fammi sapere. Ciao,
Mario
di asdrubale87 data: 02/10/2015 11:15:32
questa formula è molto comoda, e si avvicina a quello che mi serve.
ora ci vorrebbe il "colpo di genio" che mi permetta di passare questa formula in una macro che automatizzi il più possibile, così che io possa passare questa formula alle colleghe in ufficio, che di excel non ne capiscono molto...
di Mister_x (utente non iscritto) data: 02/10/2015 13:16:27
ciao
una sub() che fa queto lavoro
le colonne in questione sono la A e la B
ciao
Option Explicit
Sub sommaUguali()
Dim i As Long, o As Long
Dim ColA As Variant
Dim ColB As Double
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
ColA = Cells(i, 1)
ColB = Cells(i, 2)
For o = i - 1 To 1 Step -1
If ColA = Cells(o, 1) Then
Cells(o, 2) = Cells(o, 2) + ColB
Rows(i & ":" & i).Delete
Exit For
End If
Next o
Next i
End Sub
|
di asdrubale87 data: 02/10/2015 15:27:31
Mister_x Grazie!!!!!!!!!!
era proprio quello che cercavo...anche se non capisco come faccia a funzionare...
tipo...dove hai dichiarato che la macro deve lavorare sulle colonne A e B??
capendo meglio questo codice vorrei farci un UserForm, così da rendere questa macro universale
di patel data: 02/10/2015 16:16:39
mi sembra evidente
ColA = Cells(i, 1)
ColB = Cells(i, 2) |
di alfrimpa data: 02/10/2015 17:56:03
Giusto per renderla più evidente
Cells ha due parametri: il primo indica la riga il secondo la colonna per cui se scrivo Cells(1, 1) faccio riferimento alla cella A1 e Cells(1, 2) a B1.
Alfredo
di asdrubale87 data: 03/10/2015 10:10:12
ok, allora avevo capito bene, e sono riuscito a far funzionare l'user form, grazie a tutti
Sub sommaUguali()
Dim i As Long, o As Long
Dim ColA As Variant
Dim ColB As Double
For i = Cells(Rows.Count, TextBox1).End(xlUp).Row To 1 Step -1
ColA = Cells(i, TextBox1)
ColB = Cells(i, TextBox2)
For o = i - 1 To 1 Step -1
If ColA = Cells(o, TextBox1) Then
Cells(o, TextBox2) = Cells(o, TextBox2) + ColB
Rows(i & ":" & i).Delete
Exit For
End If
Next o
Next i
End Sub |
di asdrubale87 data: 03/10/2015 12:14:20
e se volessi aggiungere da quale riga far partire la macro? utilizzando una TextBox?
di asdrubale87 data: 05/10/2015 14:26:33
ok, ho risolto da solo, grazie a tutti per le risposte.
posto il codice, se dovesse servire a qualcun'altro
Sub sommaUguali()
Dim i As Long, o As Long
Dim ColA As Variant
Dim ColB As Double
For i = Cells(Rows.Count, TextBox1).End(xlUp).Row To TextBox3 Step -1
ColA = Cells(i, TextBox1)
ColB = Cells(i, TextBox2)
For o = i - 1 To 1 Step -1
If ColA = Cells(o, TextBox1) Then
Cells(o, TextBox2) = Cells(o, TextBox2) + ColB
Rows(i & ":" & i).Delete
Exit For
End If
Next o
Next i
End Sub |
di Mister_x (utente non iscritto) data: 05/10/2015 16:24:22
ciao
nella tua sub() manca ancora un parametro di riferimenti nel secondo ciclo For
For o = i - 1 To 1 Step -1
in quanto devi fermare anche questo ciclo alla stassa riga di For i
For o = i - 1 To TextBox3 Step -1
ciao
di asdrubale87 data: 06/10/2015 13:54:23
Grazie Mister_x, non ci avevo fatto caso, anche perchè la macro funzionava bene lo stesso
di mb data: 06/10/2015 21:58:17
gentilissimo asdrubale87
desideravo chiederti un piacere, sarà l'età o l'ora ho provato a creare una userform con 3 textbox, ma forse non ho capito bene ma non riesco a far funzionare la tua sub
ti sarei veramente grato se potessi postare unfile d'esempio pr poterlo studiare meglio
grazie
di asdrubale87 data: 07/10/2015 12:41:50
ho appena caricato il file d'esempio che ho usato per creare la macro.
così pare che funzioni bene, spero possa essere utile anche ad altri
di mb data: 07/10/2015 12:58:14
1.00000000000000 grazie
stavo proprio provando a ricreare la situazione che avevi riportato
vado a studiare
Vuoi Approfondire?