Importazione di un sottoinsieme di record (Microsoft Excel)
Gordon si chiede come può importare un sottoinsieme di un file di testo in Excel, a seconda del valore di un particolare campo. Ad esempio, potrebbe voler importare solo i record che contengono una “y” nella colonna 5 di ogni record nel file di testo.
Esistono diversi modi per affrontare questa attività. Uno è che potresti semplicemente importare l’intero file di testo, ordinare i record ed eliminare quelli che non desideri. Questa è forse l’opzione più semplice se è necessario elaborare solo un singolo file e l’intero file può essere contenuto in un singolo foglio di lavoro.
Un altro approccio consiste nell’utilizzare una macro. (Questo è quello che trovo il più veloce e semplice, in particolare se è necessario importare lo stesso tipo di file un po ‘.) La macro può aprire il file di testo, leggere ogni riga e quindi determinare se il le informazioni in quella riga dovrebbero essere aggiunte o meno al foglio di lavoro. Ecco un esempio che aprirà un file denominato “MyCSVFile.txt” e quindi incollerà i dati in un nuovo foglio di lavoro a partire dalla prima riga.
Sub ReadMyFile() Dim R As Integer Dim C As Integer Dim sDelim As String Dim sRaw As String Dim ReadArray() As String sDelim = "," ' Set to vbTab if tab-delimited file Worksheets.Add Open "myCSVFile.txt" For Input As #1 R = 1 Do While Not EOF(1) Line Input #1, sRaw ReadArray() = Split(sRaw, sDelim, 20, vbTextCompare) If ReadArray(4) = "y" Then For C = 0 To UBound(ReadArray) Cells(R, C + 1).Value = ReadArray(C) Next C R = R + 1 End If Loop Close #1 End Sub
Per utilizzare la macro, è sufficiente modificare il nome del file in modo che corrisponda al file che si desidera elaborare. Dovrai anche modificare la variabile sDelim per assicurarti che corrisponda a ciò che viene utilizzato come delimitatore nei tuoi record. Come scritto, presuppone che il delimitatore sia una virgola (che sarebbe in un file CSV), ma potresti cambiarlo in vbTab se stai effettivamente lavorando con un file delimitato da tabulazioni. Al termine della macro, solo i record con un carattere “y” minuscolo si trovano nel nuovo foglio di lavoro.
Un altro approccio consiste nell’usare la funzionalità Power Query di Excel. Questo è un add-in gratuito, di Microsoft, disponibile per alcune varianti di Excel 2010 ed Excel 2013. Puoi scaricarlo (e scoprire quali varianti sono supportate) da questa posizione:
http://www.microsoft.com/en-us/download/details.aspx?id=39379
Se si utilizza Excel 2016, Power Query è integrato nel programma.
Se Power Query è installato o disponibile nella tua versione di Excel e quella versione di Excel è Excel 2010 o Excel 2013, segui questi passaggi:
-
Visualizza la scheda Power Query della barra multifunzione.
-
Fare clic su Da file | Da CSV. Excel visualizza la finestra di dialogo Sfoglia valori separati da virgola, che assomiglia molto a una finestra di dialogo Apri standard.
-
Individua e seleziona il file CSV che desideri importare in Excel.
-
Fare clic su Apri. Excel carica i dati in una finestra di Power Query con i pulsanti di filtro disponibili per ogni campo.
Se utilizzi Excel 2016 o una versione successiva, i passaggi sono leggermente diversi:
-
Visualizza la scheda Dati della barra multifunzione.
-
Fare clic sullo strumento Nuova query (Excel 2016) o sullo strumento Ottieni dati (versioni successive di Excel) nel gruppo Recupera e trasforma. Excel mostra alcune opzioni.
-
Fare clic su Da file | Da testo / CSV. Excel visualizza la finestra di dialogo Importa dati, che assomiglia molto a una finestra di dialogo Apri standard.
-
Individua e seleziona il file CSV che desideri importare in Excel.
-
Fare clic su Apri. Excel carica i dati in una finestra di Power Query con i pulsanti di filtro disponibili per ogni campo.
A questo punto, indipendentemente dalla versione di Excel in uso, è possibile utilizzare i controlli per specificare una query (ovvero, impostare una definizione di quali record devono essere importati). Quando si fa clic su Chiudi e carica, i record vengono recuperati dal file e la query può essere salvata per un utilizzo futuro.
Un quarto approccio consiste nell’utilizzare Microsoft Query. Per fare ciò, dovrai seguire questa lunga serie di passaggi. (Nessuno ha mai detto che Microsoft volesse rendere Microsoft Query facile da usare e sarai d’accordo dopo aver seguito questi passaggi.)
-
Visualizza la scheda Dati della barra multifunzione.
-
Fare clic sullo strumento Ottieni dati nel gruppo Recupera e trasforma dati, quindi scegliere Da altre origini (nel gruppo Carica dati esterni versioni precedenti di Excel) e quindi scegliere Da Microsoft Query. Excel visualizza la finestra di dialogo Scegli origine dati. (Vedi figura 1.)
-
Seleziona l’opzione Nuova origine dati e fai clic su OK. Excel visualizza la finestra di dialogo Crea nuova origine dati. (Vedi figura 2.)
-
Fornisci un nome per la tua origine dati, ad esempio “File CSV”.
-
Utilizzando l’elenco a discesa per l’elemento 2, scegliere Microsoft Text Driver.
-
Fare clic su Connetti. Excel visualizza la finestra di dialogo Configurazione testo ODBC.
-
Fare immediatamente clic su OK per chiudere la finestra di dialogo.
-
Fare clic su OK per chiudere la finestra di dialogo Crea nuova origine dati. Excel aggiorna la finestra di dialogo Scegli origine dati per includere il nome specificato nel passaggio 4.
-
Seleziona l’origine dati appena creata, quindi fai clic su OK. Excel visualizza un avviso indicante che non sono presenti tabelle di dati nell’origine. (Va bene; non ne hai definito nessuno.)
-
Fare clic su OK per ignorare l’avviso. Excel visualizza la finestra di dialogo Creazione guidata query.
-
Poiché non è possibile eseguire alcuna operazione con una finestra di dialogo della Creazione guidata query vuota, fare clic su Annulla. Excel visualizza un avviso che chiede se si desidera rimanere in Microsoft Query.
-
Fare clic su Sì. Excel visualizza la finestra di dialogo Aggiungi tabella.
-
Utilizzando i controlli nella finestra di dialogo, individua e seleziona il tuo file CSV.
-
Fare clic sul pulsante Aggiungi. Excel sembra non fare nulla, ma in realtà ha aggiunto il riferimento al file CSV.
-
Fare clic sul pulsante Chiudi per chiudere la finestra di dialogo Aggiungi tabella. Il file CSV viene visualizzato nella finestra di Microsoft Query.
-
Utilizzando l’elenco dei campi per il file CSV, trascina ogni campo che desideri importare nel foglio di lavoro nell’area inferiore della finestra di Microsoft Query. (Se vuoi tutti i campi, trascina l’asterisco nell’area inferiore della finestra.)
-
Fare clic su Criteri | Aggiungi criteri. Excel visualizza la finestra di dialogo Aggiungi criteri. (Vedi figura 3.)
-
Utilizzando i controlli nella finestra di dialogo, specificare che si desidera che il campo 5 (qualunque sia il nome) sia uguale a “y”.
-
Fare clic sul pulsante Aggiungi per aggiungere effettivamente i criteri alla query.
-
Fare clic su Chiudi per chiudere la finestra di dialogo Aggiungi criteri.
-
Fare clic su File | Restituisci i dati a Microsoft Excel. Excel visualizza la finestra di dialogo Importa dati. (Vedi figura 4.)
-
Modificare le impostazioni nella finestra di dialogo, come desiderato, per indicare come si desidera che i dati CSV vengano restituiti a Excel.
-
Fare clic su OK.
(Ti ho detto che i passaggi erano lunghi.) È ora possibile lavorare con i dati in Excel e, se lo si desidera, utilizzare gli strumenti nella scheda Progettazione della barra multifunzione per aggiornare i dati dal file CSV.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (10384) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.