Condividi:        

Macro per creare report di sintesi

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

Macro per creare report di sintesi

Postdi danibi60 » 06/05/14 18:28

Ciao a tutti,

siete come sempre la mia àncora di salvezza e la speranza di trovare una soluzione al mio problema.

Avrei la necessità di una matrice che possa creare un report di sintesi al file che vi allego e che spesso mi capita di estrarre dal mio gestionale. Il file, giusto per correttezza non avrebbe più delle colonne indicate ( a- n) ma potrebbe avere da un minimo di 10 sino a un max di 500 righe.

I campi rimangono sempre invariati e così le etichette.

In sostanza avrei la necessità di:

raggruppare per fasce di peso mantenendo gli abbinamenti ad essi legati come: centri di spedizione (col. B), località di destino ( col.G) numero colli (col J) volume ( col.K) peso tot.(col.L) peso singolo collo (col.M) e densità (col.N).

quando parlo di raggruppare i pesi, intendo che i dati in colonna M vengano arrotondati per eccesso ( ai 50 kg sup.) e inseriti in queste scale con queste etichette: fino a 100 kg - fino a 500 kg - fino a 1.000kg - fino a 2.000kg - fino a 3.000 kg - fino a 4.000 - fino a 5.000kg - fino a 7.500kg - oltre.

gli altri valori invece non devo essere arrotondati ma lasciati cosi come sono.

Naturalmente, sempre che si possa fare, vorrei che per ogni fascia di peso si potesse fare un totale delle spedizioni e che tale totale possa svilupparsi anche per centro di spedizione: es.: nella fascia fino a 1.000kg ci sono state 20 spedizioni totali sul territorio nazionale di cui: 2 spedizioni su di un centro, 12 su di un altro 6 su quell'altro ecc ecc....(i centri sono nella colonna B)

Spero di esser stato sufficientemente chiaro, attendo come sempre vostri chiarimenti.

Vi ringrazio a prescindere anche solo per la vostra sempre cortese e proficua attenzione.

danibi60

https://www.dropbox.com/s/h5yqxdjv01uy0 ... sempio.xls
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Sponsor
 

Re: Macro per creare report di sintesi

Postdi Anthony47 » 07/05/14 00:19

Alcune domande non mi sono chiare, per cui mi fermo a qualche suggerimento generico...

Puoi arrotondare il peso in una nuova colonna, ad esempio usando in O2 la formula
Codice: Seleziona tutto
=SE(M2>0;50*ARROTONDA.ECCESSO(M2/50;1);"")

Per ottenere una fascia di appartenenza:
-ti crei una tabella con in prima colonna il peso iniziale e in seconda la fascia di appartenenza; le prime tre righe quindi saranno: 0 /100; 100,01 /500; 500,01 /1000
Io ho usato il range S1:T20
-poi in una nuova colonna calcoli la fascia di appartenenza; ad esempio usando in P2 la formula
Codice: Seleziona tutto
=SE(M2>0;CERCA.VERT(O2;$S$1:$T$20;2);"")

Nota che con questa formula non sarebbe nemmeno necessario arrotondare il peso, cioe' la formula Cerca.Vert puo' lavorare direttamente sul contenuto di colonna M.

Copia ambedue le formule fino a riga 600.

Su questa nuova tabella costruisci una tabella pivot:
-usi il campo Partenza come prima "Etichetta di righe"
-usi il campo Arrivo come seconda "Etichetta di righe"
-usi il campo Fascia come "Etichetta di colonna"
-usi ancora il campo Fascia come "Valore", assicurandoti che compaia come "Conteggio di Fascia" (e non ad esempio Somma di Fascia)
Ogni colonna della tabella usata per la pivot deve avere una intestazione, anche se fosse una colonna vuota.

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

Re: Macro per creare report di sintesi

Postdi danibi60 » 07/05/14 12:30

Anthony, come sempre grazie mille per la tempestiva risposta.

Non mi è chiaro però questo Tuo passaggio:

Per ottenere una fascia di appartenenza:
-ti crei una tabella con in prima colonna il peso iniziale e in seconda la fascia di appartenenza; le prime tre righe quindi saranno: 0 /100; 100,01 /500; 500,01 /1000
Io ho usato il range S1:T20
-poi in una nuova colonna calcoli la fascia di appartenenza; ad esempio usando in P2 la formula
CODICE: SELEZIONA TUTTO
=SE(M2>0;CERCA.VERT(O2;$S$1:$T$20;2);"")

Nota che con questa formula non sarebbe nemmeno necessario arrotondare il peso, cioe' la formula Cerca.Vert puo' lavorare direttamente sul contenuto di colonna M.

Cioè, non comprendo (ma la colpa è mia) cosa intendi per creare una tabella e dove...abbi pazienza ma sono piuttosto imbranato.
Grazie,
danibi60
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Macro per creare report di sintesi

Postdi Anthony47 » 08/05/14 14:59

Ehi, se un utente di Excel mi chiede che significa creare una tabella mi preoccupo...
Io ho fatto cosi':
Immagine
host immagini

In O e P ci sono le formule di cui ti ho detto (nella barra della formula e' visualizzata quella in P2, che calcola la fascia di appartenenza).
La misteriosa "tabella" da creare e' quella che io ho messo in S1:T10 (tu la puoi mettere dove vuoi, l' importante e' che nella formula di P2 richiami correttamente l' intervallo).

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

Re: Macro per creare report di sintesi

Postdi wallace&gromit » 08/05/14 16:14

per attribuire i valori alla fascia corretta potresti anche usare il principio che ti era stato proposto da ninai in un altro tuo post (sull'arrotondamento).
In questo caso useresti:
Codice: Seleziona tutto
=100+400*(O2>100)+500*(O2>500)+1000*(O2>1000)+2000*(O2>2000)+2000*(O2>4000)
... e così via.
Un po' più lunga della soluzione di Anthony ma forse più facile da gestire, non dovendo creare la "famigerata" tabella supplementare
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Macro per creare report di sintesi

Postdi danibi60 » 09/05/14 10:39

Vi ringrazio!
Ancora mi sbellico dalle risate per il modo elegante di cui Vi siete presi gioco di me e della mia incapacità comunicativa che, più che nel comprendere e chiedere cosa significa "creare una tabella", dovrebbe allenarsi a spiegare meglio ciò che intende.
Vi chiedo ancora scusa e vi ringrazio per le soluzioni sottoposte.
danibi60
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Macro per creare report di sintesi

Postdi Anthony47 » 09/05/14 10:46

Ogni tanto qualche sorriso o sorrisone fa bene anche alla salute...

Mi permetto di dissentire da quello che scrive W&G: quando e' possibile i dati vanno tenuti fuori dalle formule; ad esempio con la tabella (che abbiamo visto non e' un mostro a nove teste), bastera' modificare la tabella per avere nuove o diverse fasce di appartenenza (a parte che la formula data e' errata).

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

Re: Macro per creare report di sintesi

Postdi wallace&gromit » 09/05/14 14:20

no, dai Anthony, non dirmi così... mi sembra che la mia formula (che poi non è tutta mia ma parte dallo spunto di ninai) restituisca gli stessi valori della tua (manca la parte SE(M2>0;...;"") ma dati i valori > 0 sembra funzionare).
Sul principio di potere modificare più facilmente i valori concordo pienamente; tra l'altro era un consiglio che mi avevi dato tu ai miei esordi in PC-facile e che ho applicato fedelmente fino all'arrivo della formula di ninai ritenevo l'unica alternativa all'annidamento della formula SE.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Macro per creare report di sintesi

Postdi Anthony47 » 09/05/14 15:15

Confesso che sono stato frettoloso nel dichiarare che la formula non puo' funzionare: essa funziona se si ha l' accortezza di inserire nei suoi membri il "delta" tra una soglia e la successiva (cosa che nella formula non e' verificata, ma evidentemente era solo un "concept" da perfezionare)

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

Re: Macro per creare report di sintesi

Postdi danibi60 » 09/05/14 18:27

Miei cari,
non voglio entrare in merito alle formule da voi indicate e alla loro validità o funzionalità corretta, però concordo sul metodo suggerito da Anthony: tenere i dati "fuori dalle formule" è sempre più corretto; primo perché non si rischia di ottenere un risultato falsato a causa di un dato che varia, il secondo è che così facendo, ed è proprio il mio caso, le fasce della tabella variano da cliente a cliente e quindi mi è più semplice modificarle senza commettere l'errore di toccare accidentalmente la formula..
Grazie ancora e grazie anche per il suggerimento nella costruzione della tabella pivot, ho appreso infatti una cosa nuova e cioè che il campo di una tabella può esser usato più volte nella tabella pivot.
es. di Anthony
- usi il campo Fascia come "Etichetta di colonna"
- usi ancora il campo Fascia come "Valore", assicurandoti che compaia come "Conteggio di Fascia" (e non ad esempio Somma di Fascia)
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Macro per creare report di sintesi

Postdi Anthony47 » 09/05/14 23:00

Prendendo lo spunto da quanto detto prima, una piccola semplificazione si puo' ottenere creando una tabella di 1 sola colonna, con i singoli valori di soglia, e poi usando la formula
Codice: Seleziona tutto
=SE((SOMMA(($T$2:$T$15-$T$1:$T$14)*(O2>$T$1:$T$14))+$T$1)>GRANDE($T$1:$T$15;2);"Altro";SOMMA(($T$2:$T$15-$T$1:$T$14)*(O2>$T$1:$T$14))+$T$1)


Contr-Maiusc-Enter
La "tabella" l' ho creata in T1:T15 (corrisponde alla seconda colonna della tabella della soluzione precedente, non e'obbligatorio che tutte le celle siano compilate), ma l' ultimo valore deve essere superiore a tutti i valori precedenti (io ho usato 99999), che corrispondera' al risultato "Altro".

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

Re: Macro per creare report di sintesi

Postdi danibi60 » 10/05/14 20:14

Anthony, ho provato la soluzione della tua nuova formula, ma da quanto puopi vedere non funzione...sono certo di aver commesso qualche errore, ma vorrei che Tu controllassi.
Grazie

Immagine
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Macro per creare report di sintesi

Postdi danibi60 » 11/05/14 09:21

Pongo ad Anthony inoltre un ulteriore quesito, nel quale si annida sicuramente l-arcano mistero della soluzione: come mai scrivi: Contr-Maiusc-Enter??

Grazie,
Danibi60
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Macro per creare report di sintesi

Postdi Anthony47 » 11/05/14 10:17

Quella formula va inserita usando la combinazione Contr-Maiusc-Enter, non il solo Enter.
ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per creare report di sintesi

Postdi danibi60 » 11/05/14 14:21

Perdonami per non ho mai "osato" prima fare questa cosa...con Contr-Maiusc-Enter, per me è quasi "armeno"...sorry.
danibi60
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Macro per creare report di sintesi

Postdi danibi60 » 12/05/14 18:52

Anthony, nel dubbio Tu possa pensare che la mia fosse una battuta, sappi che davvero non so in cosa consiste utilizzare una formula con il Contr-Maiusc-Enter
Grazie per quanto mi spiegherai.
danibi60
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Macro per creare report di sintesi

Postdi Anthony47 » 12/05/14 23:05

In effetti avevo capito che avevi scoperto una cosa nuova... ma cominciavo a dubitare.
Cosa fai in genere: scrivi la formula nella barra della formula; quando ti sembra che sia tutto a posto premi il tasto "Enter", o "A capo", o "Invia", o come si chiama nella tua tastiera. Questa volta, con questa formula, premi contemporaneamente i tasti Contr-Maiusc e poi dai "un colpo" di Enter; alla fine rilasci anche Contr-Maiusc. Vedrai alla fine la formula racchiusa tra parentesi graffe (sia chiaro che aggiungere a mano le graffe non e' la stessa cosa).
Per Maiusc intendo il tasto che momentaneamente forza il carattere maiuscolo (il "bloccamaiuscolo" non vale).

Si tratta di una formula in forma di "matrice", la procedura Contr-Maiusc-Enter consente di calcolare tutte le componenti della matrice; la componente a matrice e' ($T$2:$T$15-$T$1:$T$14)*(O2>$T$1:$T$14).
Per altre informazioni, cerca nell' help on line di excel alla voce "Utilizzo di formule e costanti di matrice"

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

Re: Macro per creare report di sintesi

Postdi danibi60 » 13/05/14 08:27

M-A-G-N-I-F-I-C-O!!!

Mai fatto niente di simile, questa è davvero una formula strepitosa, tanto più che ti permette di modificare le soglie in verticale come si vuole.

Ti ringrazio, e sono sincero, dal profondo del cuore, non tanto per la formula, ma per la Tua commovente disponibilità.
Grazie,
Danibi60
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo


Torna a Applicazioni Office Windows


Topic correlati a "Macro per creare report di sintesi":


Chi c’è in linea

Visitano il forum: Nessuno e 99 ospiti