Dati su più fogli di Excel 2010 con Microsoft Query

0

In questo articolo risponderemo a una domanda frequente che rivolgono gli utenti: come si fa a suddividere i dati di un foglio Excel in fogli diversi sulla base di un criterio? Non è una operazione semplicissima, ma si può fare tranquillamente grazie ad uno strumento Excel poco utilizzato: le query. Vediamo come.

office-365-logoAbbonati a Office 365  e ottieni subito l’ultima edizione di Office
Se ti abboni a Office 365 ad esempio alla versione Home, ottieni subito 5 installazioni di Office per Windows e/o  Mac per il tuo nucleo famigliare, oltre a 60 minuti per telefonare con Skype e 20 Gb aggiuntivi su SkyDrive. Abbonati subito con una soluzione mensile o annuale.

Suddividere i dati su più fogli

Immaginiamo di avere nel primo foglio di un file l’elenco che segue e di voler suddividere questi dati per categoria dividendoli per fogli. La suddivisione deve essere dinamica, nel senso che se all’elenco originale si aggiunge una spesa, questa deve comparire anche nel foglio relativo alla sua categoria.

Data Categoria Importo
10/10/2011 Francobolli € 1,10
15/10/2011 Cancelleria € 6,00
01/12/2011 Cancelleria € 6,40
20/12/2011 Libri € 34,50
08/01/2012 Cancelleria € 10,60
01/02/2012 Bolli € 16,50
13/02/2012 Materiale informatico € 17,20
05/03/2012 Cancelleria € 15,78
05/03/2012 Francobolli € 5,50
01/04/2012 Cancelleria € 5,00

Mostreremo come fare per i francobolli, per tutte le altre categorie basterà ripetere, in fogli diversi, la stessa procedura. Per prima cosa aggiungete al file un nuovo foglio e rinominatelo Francobolli. Fate clic sulla cella A1 di questo nuovo foglio e portatevi nella scheda Dati della barra multifunzione. Qui, nel gruppo Carica dati esterni, fate clic sul pulsante Da altre origini, quindi scegliete Da Microsoft Query.
Vi si presenterà la finestra Scegli origine file, visibile in figura 1. Fate clic su Excel files e poi premete il pulsante OK.

dati-su-piu-fogli-di-excel-1
Figura 1: la finestra Scegli origine dati

Vi verrà chiesto di scegliere il file su cui eseguire la query. Scegliete lo stesso file su cui state lavorando e premete OK. Nella nuova finestra che vi si presenta scegliete il nome del foglio che contiene i dati originali e premete Aggiungi. Poi premete il tasto Chiudi per chiudere questa finestra.
Nella nuova finestra vedrete l’elenco delle etichette di colonna presenti nel foglio selezionato. Trascinate verso il basso quelle i cui dati volete riportare nel foglio filtrato. Dovete portare almeno la colonna che contiene i valori su cui applicare il filtro come mostrato in figura 2.

dati-su-piu-fogli-di-excel-2
Figura 2: Microsoft Query mostra le etichetta di colonna del foglio di origine

Fate poi clic nella colonna da filtrare (Categoria per noi) e scegliete Criteri > Aggiungi criteri.
Visualizzerete la finestra Aggiungi criteri visibile in figura 3, già in parte compilata, dove vengono filtrate le righe che nella colonna Criteri contengono il valore Francobolli. Il valore in base a cui filtrare può essere scritto o scelto dall’elenco che vi si presenta se premete il tasto Valori
Una volta impostati i criteri fate clic su Aggiungi e poi Chiudi.

dati-su-piu-fogli-di-excel-3
Figura 3: la finestra Aggiungi criteri

A questo punto non vi resta che usare il pulsante Restituisci i dati per inserire in Excel i dati filtrati.

dati-su-piu-fogli-di-excel-4
Figura 4: il pulsante Restituisci i dati, permette di inviare i dati filtrati a Excel

Vi si presenterà una finestra che vi chiede da dove cominciare ad incollare i dati filtrati: la cella A1 del foglio Francobolli andrà benissimo.
Ripetete questa procedura, in fogli diversi, per tutte le categorie da suddividere.

Aggiornamento dei dati

Le query si aggiornano automaticamente all’apertura del file, ma se volete aggiornare la suddivisione dei dati durante una sessione di lavoro, portatevi alla scheda Dati e, nel gruppo Connessioni, premete il pulsante Aggiorna tutti.
L’unico problema di questa soluzione è che se si sposta il file Microsoft Query, non trova più i dati dell’elenco originale da suddividere. Questo perché, anche se si lavoro all’interno di una cartella di lavoro, Microsoft Query, salva all’interno della query il percorso assoluto del file che contiene i dati. Per aggirare questo problema, occorre eseguire, all’apertura del file, una macro VBA che aggiorna questo percorso.
Per risolvere facilmente il problema, basta eseguire, all’apertura della cartella di lavoro che contiene la query, del codice VBA che aggiorna il nome del file sui cui si esegue la query, recuperandolo dal nome e dal percorso del file in uso: ActiveWorkbook.Path e ActiveWorkbook.Name.

Private Sub Workbook_Open()
 Dim strPercoso As String
 Dim strFile As String

strPercorso = ActiveWorkbook.Path
 strFile = ActiveWorkbook.Name
 strPercorsoCompleto = strPercorso & "" & strFile

strConn = "ODBC; DSN=Excel Files;DBQ=" & strPercorsoCompleto & ";DefaultDir=" & _
 strPercorso & ";DriverId=1046;
 MaxBufferSize=2048;PageTimeout=5;"

For Each connessione In ActiveWorkbook.Connections

With connessione.ODBCConnection
 .BackgroundQuery = True
 .Connection = strConn
 .RefreshOnFileOpen = True
 .SavePassword = False
 .SourceConnectionFile = ""
 .SourceDataFile = ""
 .ServerCredentialsMethod = xlCredentialsMethodIntegrated
 .AlwaysUseConnectionFile = False
 End With
 connessione.Refresh
 Next
 End Sub

Nota
Questo codice va scritto nel foglio di codice relativo alla cartella di lavoro. Non per uno specifico foglio.


Autore: Alessandra Salvaggio – Tratto daS.O.S. Office

70%
70
Voto
  • Giudizio degli utenti (76 Voti)
    9.6
Condividi.

I commenti sono chiusi.