| | Post: 9 | Registrato il: 26/08/2008
| Città: MILANO | Età: 43 | Utente Junior | | OFFLINE | |
|
08/10/2008 14:27 | |
ciao!
Ho questo problema:
ho una tabella (magazzino) con codici, descrizione, quantità.
Siccome i dati provengono da un altra tabella, si crano dei doppioni.
Praticamente mi servirebbe una formula o uno script o qualsiasi cosa, in modo tale da accorpare i codici uguali sommando il campo quantità.
Mmh, lo so, come spiegazione è molto fumosa, allego un esempio che è molto chiaro quello che sto cercando!!
Praticamente la prima tabella è come è ora, la seconda è come dovrebbe diventare, mi manca solo l'automazione!!
grazie a tutti.
-Andrea-
|
|
| | Post: 664 | Registrato il: 18/12/2005
| Età: 27 | Utente Senior | 36 | | OFFLINE | |
|
08/10/2008 19:28 | |
ciao rockeye06,
una soluzione potrebbe essere:
1/ la 2ª tabella con codice ( e testo univoco)
2/ sempre nella seconda tab. usare la funzione Somma.se( intervallo,criterio(es. il codice 12p, intervallo somma --> Qty)
aurelio Aurelio
excel_mac: 2004 & 2011
|
| | Post: 273 | Registrato il: 14/11/2005
| Città: FIRENZE | Età: 80 | Utente Junior | 2007 | | OFFLINE | |
|
08/10/2008 19:37 | |
Ciao
un'altra soluzione potrebbe essere in C15:
=MATR.SOMMA.PRODOTTO((A$2:A$8=A15)*(C$2:C$8) )
poi trascini in basso fino all'ultima riga dei codici unici (nell'esempio C20) franco
Excel 2007 |
| | Post: 38 | Registrato il: 03/09/2008
| Utente Junior | | OFFLINE | |
|
08/10/2008 21:43 | |
Ciao,
se ti può essere utile dai un'occhiata a questa discussione.
Ciao
Tribuno1 Excel 2010 |
| | Post: 1.542 | Registrato il: 14/11/2004
| Utente Veteran | Office 2019 | | OFFLINE |
|
09/10/2008 11:21 | |
Ciao Rockey06, se la tabella e come quella dell'esempio, ti ho creato questa macro, e un ulteriore sviluppo di "delDopp", un altra macro di altro post, "valori doppi in colonna", eccola
Sub elDopel()
vert = Cells(Rows.Count, 1).End(xlUp).Row
oriz = Cells(1, 1).End(xlToRight).Column
Range(Cells(1, 1), Cells(vert, oriz)).Select
Selection.Sort Key1:=Cells(2, 1), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
For y = 1 To vert
If Cells(y, 1) = "" Then Exit For
If Cells(y, 1) = Cells(y + 1, 1) Then
Cells(y, 3) = Cells(y, 3) + Cells(y + 1, 3)
Cells(y, 4) = Cells(y, 4) + Cells(y + 1, 4)
Range(Cells(y + 1, 1), Cells(y + 1, oriz)).Select
Selection.Delete Shift:=xlUp
y = y - 1
End If
Next y
Cells(1, 1).Select
End Sub
la copi in un modulo e la lanci, attenzione fatti una copia del foglio, può sempre esserci qualche problema, solo dopo aver avuto il risultato lo cancelli.
in effetti ordina i dati, poi controlla il codice uguale, somma i dati, e cancella il doppione.
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 9 | Registrato il: 26/08/2008
| Città: MILANO | Età: 43 | Utente Junior | | OFFLINE | |
|
10/10/2008 09:26 | |
grazie a tutti, ho sperimentanto un pò tutti i suggerimenti.
Vorrei però chiedere a Sal quale dei parametri devo modificare se nella mia tabella il codice è nella colonnaB (anziche nella A come nel mio esempio)e la tabella parte dalla riga 2 (anziche dalla 1)...
grazie! |
| | Post: 32 | Registrato il: 10/09/2007
| Città: CORMONS | Età: 57 | Utente Junior | 2010 | | OFFLINE | |
|
10/10/2008 12:18 | |
le modifiche da fare sono su tutti i
Cells(y, x)
dove y = riga e x = colonna
p.s.
grazie Sal ... avevo fatto la stessa cosa ma in maniera molto incasinata gestendo anche degli array ... così è molto più semplice e veloce |
| | Post: 1.545 | Registrato il: 14/11/2004
| Utente Veteran | Office 2019 | | OFFLINE |
|
10/10/2008 15:39 | |
Ciao Rockeye06, allora è importante, sapere la disposizione dei dati, perche possono succedere "casini", mi sono fidato della tua esposizione dei dati, non ha importanza se inizia dalla riga2 l'elenco penso che alla riga1 ci siano le intestazioni, quindi non si troverà una riga con Codice, poi l'ordinamento viene fatto partendo dalla riga2, comunque si può partire anche dalla riga2, ti riscrivo la macro corretta.
Sub elDopel()
vert = Cells(Rows.Count, 2).End(xlUp).Row
oriz = Cells(1, 1).End(xlToRight).Column
Range(Cells(1, 1), Cells(vert, oriz)).Select
Selection.Sort Key1:=Cells(2, 2), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
For y = 2 To vert
If Cells(y, 2) = "" Then Exit For
If Cells(y, 2) = Cells(y + 1, 2) Then
Cells(y, 3) = Cells(y, 3) + Cells(y + 1, 3)
Cells(y, 4) = Cells(y, 4) + Cells(y + 1, 4)
Range(Cells(y + 1, 1), Cells(y + 1, oriz)).Select
Selection.Delete Shift:=xlUp
y = y - 1
End If
Next y
Cells(1, 1).Select
End Sub
Sempre tenendo conto che i dati di magazzino siano nelle colonne "C - D", altrimenti dove vedi "3 - 4", che equivalgono a "C -D", devi sostituire con le colonne giuste, cioè "A=1, B=2, C=3, etc..".
Fai sapere, ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 10 | Registrato il: 26/08/2008
| Città: MILANO | Età: 43 | Utente Junior | | OFFLINE | |
|
14/10/2008 09:23 | |
funziona tutto alla perfezione!!
ti ringrazio molto!!! |
| | Post: 0 | Registrato il: 07/11/2012
| Città: MILANO | Età: 43 | Utente Junior | 2010 | | OFFLINE | |
|
16/03/2013 17:37 | |
leggo la discussione spero di trovare ciò che mi interessa |
| | Post: 0 | Registrato il: 17/04/2013
| Città: ROMA | Età: 49 | Utente Junior | | OFFLINE | |
|
17/04/2013 23:00 | |
|
| | Post: 0 | Registrato il: 17/10/2014
| Città: MILANO | Età: 34 | Utente Junior | | OFFLINE | |
|
17/10/2014 12:01 | |
grazie è servita pure a me ! |
| | Post: 0 | Registrato il: 14/11/2014
| Città: SANT'ARPINO | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
14/11/2014 09:00 | |
Salve ragazzi,
grazie per i consigli, ho provato ad utilizzare la macro,
solo che nel mio caso dovrei aggiungere un'altra colonna da controllare, in pratica se le colonne B, D ed F sono uguali allora somma il valore nella colonna G
qualcuno può aiutarmi?
grazie
|
| | Post: 36 | Registrato il: 10/09/2007
| Città: CORMONS | Età: 57 | Utente Junior | 2010 | | OFFLINE | |
|
14/11/2014 10:18 | |
Nicola
posta il file ... così è più facile capire di cos necessiti |
| | Post: 1 | Registrato il: 14/11/2014
| Città: SANT'ARPINO | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
15/11/2014 09:47 | |
|
| | Post: 37 | Registrato il: 10/09/2007
| Città: CORMONS | Età: 57 | Utente Junior | 2010 | | OFFLINE | |
|
15/11/2014 10:15 | |
per quello che ti serve credo che sia sufficiente una formula e non una macro.
controlla se ti và bene ... ho aggiunto 2 righe in rosso per controllare se andava bene |
| | Post: 2 | Registrato il: 14/11/2014
| Città: SANT'ARPINO | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
15/11/2014 13:13 | |
Ti ringrazio,
però io ho bisogno che mi elimini tutte le righe ripetute (Uguali nei valori inseriti nelle colonne d,f,h) e mi indichi nella colonna I il totale.
ho già realizzato due macro una per eliminare le righe a 0 ed una per ordinare, il tutto per ottenere il risultato che ti ho riportato nella scheda "ORDINE SCREMATO".
Spero di essere stato chiaro.
|
| | Post: 3 | Registrato il: 14/11/2014
| Città: SANT'ARPINO | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
15/11/2014 13:14 | |
questa à la macro che mi elimina le righe
Sub elimina_righe()
Dim ur As Integer, riga As Integer
Dim col As String
col = "g"
If col = "0" Then Exit Sub
On Error GoTo fine
ur = Cells(Rows.Count, col).End(xlUp).Row
If ur = 1 Then Exit Sub
For riga = ur To 1 Step -1
If IsError(Cells(riga, col)) Then Rows(riga).Delete
If Cells(riga, col).Value = "0" Then Rows(riga).Delete
Next
Exit Sub
fine:
MsgBox "Inserimento Colonna inesistente"
End Sub |
| | Post: 4 | Registrato il: 14/11/2014
| Città: SANT'ARPINO | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
15/11/2014 13:15 | |
e questa è quella che mi ordina
Sub Ordine()
'
' Ordine Macro
'
'
ActiveWorkbook.Worksheets("Cartiera").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cartiera").Sort.SortFields.Add Key:=ActiveCell. _
Range("A1:A500"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Cartiera").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 2).Range("A1:A500"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Cartiera").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 4).Range("A1:A500"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cartiera").Sort
.SetRange ActiveCell.Range("A1:F500")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
L'ideale sarebbe riunire tutto in una macro.
|
| | Post: 38 | Registrato il: 10/09/2007
| Città: CORMONS | Età: 57 | Utente Junior | 2010 | | OFFLINE | |
|
17/11/2014 10:17 | |
non mi è molto chiaro quello che vuoi fare.
nella colonna I ci sono già dei dati che non combaciano con quanto chiedi.
prova a vedere se questo mio esempio di può aiutare:
- copio tutto il tuo foglio su un'altro d'appoggio;
- ordino i dati per le colonne che hai indicato;
- sommo il numero di righe trovate uguali sulla colonna P e cancello le righe doppie
spero di esserti stato utile
buon lavoro |
| | Post: 5 | Registrato il: 14/11/2014
| Città: SANT'ARPINO | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
19/11/2014 10:56 | |
Scusa,
hai ragione ho pubblicato le macro relative ad un foglio che riportava solo alcune delle colonne in questione e non tutte come nell'esempio.
Comunque penso che tu abbia capito perfettamente il mio problema, in pratica ciò che hai scritto va bene
- copio tutto il tuo foglio su un'altro d'appoggio; OK (puoi ance modificare il foglio di lavoro su cui sono inseriti i dati)
- ordino i dati per le colonne che hai indicato; OK
- sommo il numero di righe trovate uguali sulla colonna P e cancello le righe doppie
in teoria è corretto però non mi trovo con il risultato.
In quanto nel file originario avevo 331 pezzi nella colonna P (utilizziamo la colonna I che è quella di riferimento) mentre nel foglio di test i valori scendono a 129.
forse se ti spiego i significati di quei numeri capisci meglio:
- nella colonna D è inserito il tipo di prodotti da produrre
- nella colonna F ed H ci sono lunghezza e larghezza dei prodotti
- nella colonna I ci sono il numero di pezzi
Siccome lo stesso tipo di prodotto (rappresentato dall'uguaglianza contemporanea del valore inserito nelle colonne D, F ed H) si ripete più volte, in produzione devo passare un file che mi riporti una sola volta ogni tipo di prodotto sommando il numero di pezzi.
Per esempio nel file che ti allego riporta per due volte il prodotto seguente:
BANCALE DIGITALE 2(Col D) 33,00(col.F) 46,00(col.H)
una volta per 35 pezzi(col.I) ed un'altra volta per 48 pezzi,
ho bisogno che nel file finale mi compaia una sola volta la riga sopra riportata con il totale di 35+48 pezzi = 83 pezzi nella col.I.
Spero di essere stato più chiaro.
grazie mille per l'aiuto.
Ciao |
| | Post: 39 | Registrato il: 10/09/2007
| Città: CORMONS | Età: 57 | Utente Junior | 2010 | | OFFLINE | |
|
19/11/2014 15:27 | |
Sulla colonna Q ti ho inserito la somma dei dati trovati sulla colonna I e sulla colonna R il nr di righe che sono state sommate.
C'era solo una piccola modifica da fare rispetto a prima ... se guardavi attentamente la macro, l'avresti potuta correggere da solo.
buon lavoro |
| | Post: 0 | Registrato il: 08/04/2015
| Utente Junior | | OFFLINE | |
|
08/04/2015 09:09 | |
|
| | Post: 6 | Registrato il: 15/02/2003
| Età: 40 | Utente Junior | excel 2010 | | OFFLINE | |
|
12/09/2015 15:16 | |
Ciao a tutti,
mi aggiungo a questa discussione.
sullo stesso foglio avrei bisogno di:
inserire nella parte sinistra, i prodotti venduti della giornata che inserisco manualmente e che nella parte destra mi facesse la somma automatica dei prodotti per quantità e incasso venduti nel mese, sommando i prodotti uguali ed inserendo quelli nuovi
grazieee! [Modificato da idawe 12/09/2015 15:18] |
| | Post: 43 | Registrato il: 10/09/2007
| Città: CORMONS | Età: 57 | Utente Junior | 2010 | | OFFLINE | |
|
12/09/2015 17:23 | |
usando matricesommaprodotto usando matricesommaprodotto puoi ottenere il risultato sulla colonna di dx
se devi sommare anche per mese dovresti aggiungere delle date da qualche parte, nell'esempio mi sono limitato a gestire le righe |
| | Post: 8 | Registrato il: 15/02/2003
| Età: 40 | Utente Junior | excel 2010 | | OFFLINE | |
|
22/09/2015 11:27 | |
Grazie!!! |
| | Post: 0 | Registrato il: 02/10/2015
| Città: MILANO | Età: 23 | Utente Junior | 2010 | | OFFLINE | |
|
02/10/2015 11:03 | |
sono nuova e anche io ho questo problema. ma non so usare le macro.. come devo fare? |
| | Post: 1.909 | Registrato il: 27/09/2010
| Città: FIRENZE | Età: 61 | Utente Veteran | Excel 2010 | | OFFLINE | |
|
02/10/2015 11:12 | |
Ciao,
credo ti convenga aprire una nuova discussione e - se possibile - allegare un piccolo file d'esempio per spiegare bene cosa hai bisogno: soprattutto per adattare al meglio una macro al tuo lavoro.
Spesso basta una tabella pivot o qualche formula per ottenere risultati simili.
Saluti e benvenuta
[Modificato da (Canapone) 02/10/2015 11:23]
|
| | Post: 2 | Registrato il: 02/10/2015
| Città: MILANO | Età: 23 | Utente Junior | 2010 | | OFFLINE | |
|
02/10/2015 11:57 | |
Grazie
ho creato una nuova discussione: http://freeforumzone.leonardo.it/discussione.aspx?idd=11194247&[Modificato da by sal 02/10/2015 12:22] |
| | Post: 0 | Registrato il: 15/01/2016
| Utente Junior | | OFFLINE | |
|
22/05/2016 15:02 | |
Tutte le indicazioni date sono molto utili, grazie a tutti |
|
|