giovedì 26 maggio 2016

Excel: sommare valori raggruppati per Anno e mese


Nel precedente post (http://bit.ly/25jBKto) abbiamo sintetizzato una lista di movimenti raggruppandoli per mese. Ma se dovessi raggruppare non solo per mese, ma anche per anno? In altre parole il precedente esempio presuppone che i movimenti da raggruppare siano tutti riferiti allo stesso anno: se avessi movimenti di anni differenti, la soluzione presentata nel precedente post non è risolverebbe il problema. Occorre adottare un accorgimento.
Nella seguente tabella si può notare che l’ultima cella (B11) contiene un movimento dell’anno 2015, mentre tutti gli altri movimenti sono del 2016.

 
Nella tabella a fianco ho rappresentato il risultato che voglio ottenere: per ogni gruppo ‘Anno e Mese’ voglio che vengano sommati tutti i movimenti di quel periodo.
Invece di elencare la lista dei mesi come nel caso precedente, in questo caso elencherò nelle celle E4:E9 la lista di ‘anno e mese’ nel seguente formato AAAAMM, ovvero anno con quattro cifre decimali e mese con due cifre decimali. Nel seguente dettaglio si nota che il formato AAAAMM è preceduto da un segno di apice (‘), in modo da ottenere un formato testo (invece di un formato numerico).

 
Inoltre non utilizzerò più la formula MESE (come nel precedente post) ma la formula TESTO, così che possa raggruppare i movimenti in funzione dell’aggregato AAAAMM. Continuerò ad usare invece la funzione MATR.SOMMA.PRODOTTO, anche se con una diversa sequenza.

Procedo quindi come segue:

1)      nella cella E4 inserirò il primo ‘anno mese’ di cui voglio ottenere il raggruppamento (la somma dei movimenti di quel mese); per il mese di ‘marzo 2015’ inserirò il testo  201503 (ricorda che va inserito preceduto dal segno di apostrofo), per il mese di febbraio 2016 il testo 201602 etc. Nelle celle sottostanti (da E5 a E9) procederò nello stesso modo, inserendo il numero del mese di interesse.

2)      Nella cella F4 inserirò la seguente formula: =MATR.SOMMA.PRODOTTO((TESTO($B$4:$B$11;"aaaamm")=E4)*($C$4:$C$11))

 
 
 

La funzione annidata TESTO mi restituirà il numero del mese della data presente nell’intervallo B4:B10, mentre la funzione MATR.SOMMA.PRODOTTO restituirà la somma di tutte le ricorrenza dell’ANNOMESE ricercato (ovvero quello indicato nella cella E4, marzo 2015 nel caso di specie)



Copierò la formula nelle celle sottostanti (da F5 a F9).
Nota che l’utilizzo del simbolo di $ serve per bloccare i riferimenti agli intervalli quando si copia la formula della cella F4 nelle celle sottostanti.
Fatto!

Excel: sommare valori raggruppati per mese

A volte mi capita di dover rappresentare una lista di movimenti raggruppati per mese. Ad esempio se ho un listato di movimento riferiti a date diverse, e volessi rappresentare in modo semplice la somma dei movimenti avvenuti all’interno del mese, posso usare la funzione MART.SOMMA.PRODOTTO presente in Excel. Segue un esempio della tabella di partenza (gialla: Lista Movimenti nel periodo gen-feb 2016) e della tabella/report che voglio ottenere (verde: Raggruppamento movimenti per mese)

Nelle celle da B4 a B10 sono presenti le date, e nelle celle da C4 a C10 sono presenti i corrispondenti movimenti. Come si può notare i movimenti non sono ordinati per data: la loro rappresentazione ha un ordine casuale.

 
Procedo come segue:

1)      nella cella E4 inserirò il primo mese di cui voglio ottenere il raggruppamento (la somma dei movimenti di quel mese); per il mese di gennaio inserirò il numero 1, per il mese di febbraio il numero 2 etc. Nelle celle sottostanti (da E5 a E8) procederò nello stesso modo, inserendo il numero del mese di interesse.



2)      Nella cella F4 inserirò la seguente formula:
=MATR.SOMMA.PRODOTTO((MESE($B$4:$B$10)=E4)*($C$4:$C$10))


La funzione annidata MESE mi restituirà il numero del mese della data presente nell’intervallo B4:B10, mentre la funzione MATR.SOMMA.PRODOTTO mi restituirà la somma di tutte le ricorrenza del mese ricercato (ovvero quello indicato nella cella E4, gennaio nel caso di specie)


Copierò la formula nelle celle sottostanti (da F5 a F8).
Nota che l’utilizzo del simbolo di $ serve per bloccare i riferimenti agli intervalli quando si copia la formula della cella F4 nelle celle sottostanti.
Il gioco è fatto!

lunedì 16 maggio 2016

Alleggerire un Pdf: Pdfcompressor

Esiste un modo veloce per ridurre le dimensioni di un file pdf.
Mi capita spesso di dover produrre un report in formato Acrobat le cui dimensioni sono sempre eccessive.
Per produrre il report solitamente utilizzo un file Word (MS Office) all'interno del quale incorporo numerose immagini e genero una stampa in pdf (ad esempio con la coda di stampa pdfcreator): nonostante nella composizione del documento in Word adotti l'accorgimento di comprimere i files immagine che devono essere incorporate (vedi come comprimere le immagini in word), la dimensione finale del documento è sempre ingombrante.

Esiste un'altra possibilità per comprimere ulteriormente un file pdf, che non comporta la necessità di installare un nuovo programma: l'operazione si risolve in pochi minuti on line. Si accede al sito pdfcompressor e si carica il file che si intende comprimere: al termine del caricamento viene generato un nuovo file pdf di dimensioni molto più leggere. Ho caricato un file di 28 Mb, ed ho ottenuto un nuovo file di 7Mb!

La qualità del nuovo documento è molto simile all'originale. Ottima soluzione!

martedì 3 maggio 2016

Come raccogliere dati con Excel

Devo raccogliere dei dati in un foglio Excel, inviando a più persone un foglio predisposto per questo scopo.
Voglio fare in modo che non vengano commessi errori di inserimento.
Devo quindi imporre dei vincoli; ad esempio vorrei che:
- in una cella siano inseriti solo numeri interi e maggiori di 1.000, oppure
- il contenuto di una cella non possa essere cancellato, etc


La cella evidenziata in giallo sopra riportate contiene un testo che non deve essere cancellato dall'utente finale, mentre la cella verde dovrà essere compilata con un numero che sia maggiore di 1000.

Procedo come segue:

1) per impedire di cancellare la cella B2, la seleziono e nel gruppo "Home" apro l'impostazione del formato "Carattere", cliccando sulla corrispondente freccia evidenziata a destra:

Si aprirà la seguente finestra "Formato Celle": nel label "Protezione" inserirò i flag nelle due check box 'Bloccata' e 'Nascosta'. In questo modo sto predisponendo la cella a non essere modificabile, oltre ad impedire la visualizzazione delle eventuali formule in essa contenute:


2) per imporre che la cella B3 vengano inseriti solo numeri maggiori di 1000, seleziono la cella e dal menù "Dati" seleziono il pulsante "Convalida Dati":


Si aprirà il menù nel quale nel campo "Consenti" sceglierò l'opzione "Numero intero", nel campo "Dati" sceglierò l'opzione "maggiore di", e nel campo "Valore minimo" inserirò il numero 1.000:


Per personalizzare il messaggio di errore che appare all'utilizzatore finale nel caso non inserisse un numero maggiore di 1000, nel label "Messaggio di errore" inserisco il messaggio specifico (ho inserito il testo "messaggio personalizzato di errore"):


Per completare l'operazione occorre proteggere il foglio di lavoro. Nel menù "Revisione" seleziono il pulsante "Proteggi foglio":


e nella finestra di impostazioni che si apre, flaggo tutte le opzioni in essa contenute (o quelle che si adattano meglio alle mie necessità); poi inserisco la password (viene richiesta seconda conferma di password):


Fatto!

Se nel foglio di lavoro provo a cancellare la cella B2, riceverò il seguente messaggio di errore:


Se invece nella cella B3 inserissi un testo, od un numero inferiore a 1000, mi verrà visualizzato il seguente messaggio (come precedentemente impostato):