Condividi:        

[Excel] creazione somma "mirata"

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] creazione somma "mirata"

Postdi ferrox82 » 05/03/08 18:23

Ciao a tutti, vi scrivo per confrontarmi con voi sul seguente problema:
ho una lista di ordini di materiali ordinati nel 2006, vorrei capire quanti pezzi ho ordinato per ciascun materiale, il quale è identificato da un determinato codice.
Dopo aver ordinato la lista degli ordini in base al materiale, ho una serie di tante righe con un format del tipo:
Cod fornitore-materiale-quantità
il problema è che ogni materiale ha più ordini nel 2006, ciascuno con qtità diverse e fornitori diversi, quello che voglio fare è aggregare le quantità di ciascun materiale, per avere un consuntivo dell'anno.

Grazie in anticipo per l'attenzione..
ferrox82
Utente Junior
 
Post: 21
Iscritto il: 16/07/07 16:10

Sponsor
 

Re: [Excel] creazione somma "mirata"

Postdi Anthony47 » 05/03/08 20:14

Lo puoi fare con una "tabella pivot".
-Se le intestazioni Cod fornitore-materiale-quantità sono su riga 1 selezioni le tre colonne (altrimenti selezioni solo l' area con intestazione e dati)
-Menu /Dati /Rapporto tabella pivot; Avanti, Avanti, Layout
-trascini il campo Materiale nell' area Riga, e Quantità nell' area Dati; controlli che venga riportato come Somma di Quantità, altrimenti doppioclick sulla scritta (es Conteggio Quantità), scegli Somma dall' elenco, Ok.
-Nota 1
-completi con Ok, Fine

Ti viene creata su nuovo foglio una tabella che elenca ogni "Materiale" e la relativa quantita' totale. Ho assunto che "Materiale" sia la sigla univoca con cui si indicano i vari componenti; se fosse invece "Cod Fornitore" modificherai di conseguenza il layout.

Nota 1: se i tuoi dati fossero mischiati per data su piu' anni, basta crearti una nuova colonna intestata "Anno" in cui calcoli =ANNO(cella con Data) e nel layout della tabella pivot, potrai trascinare il campo Anno nell' area Colonna, cosi' avrai una tabella con i totali gia' suddivisi per anno.
Ricorda che tutte le colonne selezonate, anche se non le userai per la produzione della tabella pivot, devono avere una intestazione, altrimenti avrai un errore.
Infine, le tabelle pivot hanno la tendenza a causare una crescita smisurata della dimensione del file; per evitare questo: tasto dx sulla tabella pivot, Opzioni tabella, qui togli la spunta alla voce "Salva i dati con il layout della tabella" e spunti "Aggiorna all' apertura".

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

Re: [Excel] creazione somma "mirata"

Postdi ferrox82 » 11/03/08 12:07

Ok, grazie, ho risolto il problema, ora vorrei collegare le informazioni con dei totali riportati per materiale in un altro foglio, come potrei fare?
ps come è possibile visualizzare nella tabella pivot i valori ripetuti?
ferrox82
Utente Junior
 
Post: 21
Iscritto il: 16/07/07 16:10

Re: [Excel] creazione somma "mirata"

Postdi Anthony47 » 11/03/08 22:10

ferrox82 ha scritto:Ok, grazie, ho risolto il problema, ora vorrei collegare le informazioni con dei totali riportati per materiale in un altro foglio, come potrei fare?

Bene. Per il nuovo quesito, non e' che lo descrivi proprio nei dettagli; comunque penso che dovresti usare Cerca.Vert

ps come è possibile visualizzare nella tabella pivot i valori ripetuti?

Questa e' troppo criptica, anche sforzandomi non sono arrivato a darne una lettura utile.

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

Re: [Excel] creazione somma "mirata"

Postdi ferrox82 » 17/03/08 21:31

scusa hai ragione!! :)
quello che dovrei fare è riuscire a visualizzare nella tabella pivot i valori chiave, cioè riempire tutte le colonne anche con i valori che fanno da "chiave" per la selezione. Se ad esempio organizzo una tabella pivot mettendo fornitore come righe e materiale nelle colonne, ho la necessità di riempire tutte le righe con il nominativo del fornitore, anche quelle che normalmente sono lasciate bianche in quanto appartengono al medesimo fornitore, poi con un copia e incolla valori andrò ad effettuare sul medesimo foglio dei cerca vert. La tabella pivot ha migliaia di righe e perciò è impensabile copiare i valori a mano...

un altro problema di non facile soluzione è il seguente:
in un foglio ho una serie di migliaia di righe d'ordine, relative a vari clienti, e nelle colonne una serie di date dove voglio andare a calcolare una serie di parametri. Attualmente per fare queste operazioni uso un secondo foglio in cui mi sono pre-impostato nelle colonne, e quindi copiato fino alla 65536 una tutta una serie di formule "se", "conta.se", ecc.. il punto è che ogni volta devo prelevare dal foglio principale, una selezione delle SOLE righe relative ad un fornitore, copiarla ed incollarla nel foglio con le formule pre-impostae, quindi con una macro riporto i parametri calcolati per il cliente in un terzo foglio riassuntivo e cosi via, questa operazione per decine e decine di volte. E' possibile pensare ad una macro per farlo? Premetto che la estrazione dei dati avviene direttamente dal sistema informativo su excel, poi posso ordinarli in base al codice, ma se potessi fare le varie operazioni con una macro, evitando il passaggio del calcolo singolo potrei risparmiare molto tempo.
Grazie a tutti per l'attenzione, ciao
ferrox82
Utente Junior
 
Post: 21
Iscritto il: 16/07/07 16:10

Re: [Excel] creazione somma "mirata"

Postdi Anthony47 » 18/03/08 01:09

Per il problema tabella pivot, forse diventa piu’ semplice se fai un esempio di come sono i dati, di come ti viene la tabella pivot, e di quello che vorresti ora ottenere.

Per l’ altro problema, la risposta e’ “si puo’ fare”, ma non so se ce la puoi fare usando solo il forum.
Provo a darti delle linee guida e dei pezzi di codice, seguendo l’ idea che mi sono fatta.
a)supponiamo che i tuoi dati cominciano su riga 2, e che la chiave di filtro (non ho capito se e’ un cod. Cliente o un cod. Fornitore) sia in col A; questa chiave deve essere presente su tutte le righe valide.
b)memorizzi l’ ultima riga usata ed esci se e’ pari a 2
Codice: Seleziona tutto
LastRow=Range("A65536").end(xlUp).Row
If LastRow=2 then Exit Sub

(invece di Exit Sub potresti andare a una label in cui fai le operazioni di completamento del processo, es Msgbox, chiusura file, altri riti propiziatori..)
c)leggi il valore di A2 e filtri la colonna su quel valore; cerca nel forum altri esempi di macro che lavorano su filtro automatico, in linea di massima userai qualcosa come
Codice: Seleziona tutto
Fival=Range("A2").value
Range("A:A").Select
Selection.AutoFilter Field:=1, Criteria1:=Fival

d)copi da riga 2 a LastRow
Codice: Seleziona tutto
Range("2:" & LastRow).SpecialCells(xlCellTypeVisible).Copy


e) a questo punto inserisci le procedure che gia’ usi, per elaborare i dati filtrati

f) torni sul file/foglio di origine, cancelli tutte le righe al momento visibili (perche’ gia’ elaborate) ed elimini il filtro
Codice: Seleziona tutto
Range("2:" & LastRow).SpecialCells(xlCellTypeVisible).Delete
Selection.AutoFilter Field:=1, Criteria1:="="

g) ritorni allo step b fino all’ uscita per esaurimento dei dati originali

Spero che ti dia lo spunto buono.
Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] creazione somma "mirata"

Postdi ferrox82 » 18/03/08 12:45

grazie, a grandi linee ho capito cosa fare,però la cosa principale che non ho capito è dove andare a riportare i dati ricavati dalle operazioni, immagino di poterli scriverli in un altro foglio "riassuntivo"...
cmq il concetto principale è quello di lavorare su un filtro, fare le operazioni e poi cancellare le righe già utilizzate per i calcoli.
ferrox82
Utente Junior
 
Post: 21
Iscritto il: 16/07/07 16:10

Re: [Excel] creazione somma "mirata"

Postdi Anthony47 » 18/03/08 16:49

Dopo il mio step d), devi incollare i dati nel tuo foglio "riempito di formule"; magari sara' necessario prima cancellare i valori precedenti; le istruzioni relative le puoi ottenere con un Registra macro (dovrai fare piccoli adattamenti, e poi porti il codice nella macro che devi costruire. Poi dovrai lanciare la tua macro (quella con cui ora riporti “i parametri calcolati per il cliente in un terzo foglio riassuntivo”); lo puoi fare inserendo Call NomeMacro (io farei cosi’), oppure portando l’ attuale codice dentro la nuova macro. Anche qui penso che dovrai fare dei cambiamenti visto che non elabori un singolo Cliente o Fornitore alla volta, ma tutti in sequenza.

Schiarisce?
Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] creazione somma "mirata"

Postdi ferrox82 » 21/03/08 10:15

Si grazie, il processo è più chiaro però vorrei chiederti il codice per calcolare:
- differenza tra due date, se tale differenza è > 0 come è possibile riportarla in una cella di output
- se 2 date sono = riportare un contatore che conti il numero di questi casi e lo scrive in una cella di output

Grazie mille di nuovo
ferrox82
Utente Junior
 
Post: 21
Iscritto il: 16/07/07 16:10

Re: [Excel] creazione somma "mirata"

Postdi Anthony47 » 21/03/08 14:54

Fai la differenza di date come per numeri normali, facendo attenzione che il risultato non possa essere minore di Zero

Codice: Seleziona tutto
If Data2>=Data1 then Diff = Data2-Data1


Se DataX ha anche una componente “ora” (la parte decimale del numero) e vuoi fare la differenza solo tra le date, allora userai Int:
Codice: Seleziona tutto
If Data2 >= Data1 Then Diff = Int(Data2) - Int(Data1)


Per gli altri casi, vedi questi esempi:
Codice: Seleziona tutto
Range("Z1").value = Diff           'Mette in Z1 la differenza


Codice: Seleziona tutto
ContaZ = 0
'... istruzioni
If Diff = 0 Then ContaZ = ContaZ + 1        'Conta


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

Re: [Excel] creazione somma "mirata"

Postdi ferrox82 » 25/03/08 16:35

Grazie, sto cercando di fare girare la macro, intanto ritorno al problema che ti dicevo riguardo la tabella pivot, si tratta di 2 problemi totalmente indipendenti.
Quando normalmente si fa una tabella pivot, i valori chiave non sono ripetuti, cioè supponiamo di avere due campi riga, nessun campo colonna e due voci nei dati, la visualizzazione di una generica riga della tabella pivot avrà un layout del tipo:

campo riga 1 campo riga 2 dato1 X
--------------------------------dato2 y

dove x e y sono i rispettivi valori di dato1 riferito all'oggetto di camporiga 1 e camporiga 2 e di dato2 riferiti alle stesse grandezze.
Supponiamo di fare un "copia e incolla valori" sull'intera tabella pivot per poter fare operazioni sui dati ottenuti, ad esempio vorrei fare dei "cerca vert", per fare elaborazioni sulla grandezza "dato1",usando come chiave "campo riga1" ci riesco, ma poi se voglio fare elaborazioni sulla grandezza "dato2" nn posso perchè se la chiave è "campo riga1" o "campo riga 2" nn ho niente, dove nell'esempio ho messo il tratteggio mi trovo delle celle vuote.
Dovrei copiarmi giù i valori dalle celle superiori, ma avendo centinaia di celle non è pensabile. C'è modo di impostare già la tabella pivot per avere una visualizzazione con tutte le celle "piene", e cioè un layout del tipo:

campo riga 1 campo riga 2 dato1 X
campo riga 1 campo riga 2 dato2 y
cosi posso fare dei cerca vert senza dovermi copiare il contenuto delle celle?
spero di essere stato più preciso, grazie ancora
ferrox82
Utente Junior
 
Post: 21
Iscritto il: 16/07/07 16:10

Re: [Excel] creazione somma "mirata"

Postdi Anthony47 » 25/03/08 22:09

Puoi ottenere il report della tabella pivot in varie visualizzazioni, vedi se tra le varie opzioni ne trovi una che fa al caso tuo:
-vai sul foglio dove c' e' la tabella e visualizza la barra degli strumenti "Tabella pivot" (Menu /Visualizza /Barra degli strumenti; spunti Tabella pivot)
-seleziona una cella della tabella; le icone degli strumenti si "accendono"
-premi "Formatta rapporto" (il simbolo con la griglia tabella) e scegli in sequenza tra i formati che sono presenti, fino a trovarne uno che ti visualizza in orizzontale (sulla stessa riga) sia dato1 che dato2

A questo punto credo che avrai i dati come ti servono; spero....
Ricorda che se vuoi usare i campi di una tabella pivot in altre formule e' meglio impostare i riferimenti tramite tastiera piuttosto che usare il mouse per "puntarli".

Ciao, fatti sentire.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] creazione somma "mirata"":


Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti