Contenuti

A volte ci sono situazioni in cui non è noto in anticipo esattamente quante e quali righe devono essere importate dai dati di origine. Supponiamo di dover caricare i dati da un file di testo in Power Query, che, a prima vista, non presenta grossi problemi. La difficoltà è che il file viene aggiornato regolarmente e domani potrebbe avere un numero diverso di righe con dati, un'intestazione di tre, non due righe, ecc.:

Importazione di un frammento mobile in Power Query

Cioè, non possiamo dire in anticipo con certezza, a partire da quale riga e quante righe esattamente devono essere importate. E questo è un problema, perché questi parametri sono hardcoded nel codice M della richiesta. E se fai una richiesta per il primo file (importando 5 righe a partire dal 4), allora non funzionerà più correttamente con il secondo.

Sarebbe fantastico se la nostra query potesse determinare da sola l'inizio e la fine del blocco di testo "fluttuante" per l'importazione.

La soluzione che voglio proporre si basa sull'idea che i nostri dati contengano alcune parole chiave o valori che possono essere utilizzati come marker (features) dell'inizio e della fine del blocco dati di cui abbiamo bisogno. Nel nostro esempio, l'inizio sarà una riga che inizia con la parola SKU, e la fine è una riga con la parola Totale. Questa convalida di riga è facile da implementare in Power Query utilizzando una colonna condizionale, un analogo della funzione IF (SE) inMicrosoft Excel.

Vediamo come farlo.

Innanzitutto, carichiamo il contenuto del nostro file di testo in Power Query nel modo standard, tramite il comando Dati – Ottieni dati – Da file – Da file di testo/CSV (Dati – Ottieni dati – Da file – Da file di testo/CSV). Se Power Query è installato come componente aggiuntivo separato, i comandi corrispondenti saranno nella scheda Power Query:

Importazione di un frammento mobile in Power Query

Come sempre, durante l'importazione, puoi selezionare il carattere separatore di colonna (nel nostro caso, questa è una scheda) e, dopo l'importazione, puoi rimuovere il passaggio aggiunto automaticamente tipo modificato (Tipo modificato), perché è troppo presto per noi assegnare i tipi di dati alle colonne:

Importazione di un frammento mobile in Power Query

Ora con il comando Aggiunta di una colonna – Colonna condizionale (Aggiungi colonna — Colonna condizionale)aggiungiamo una colonna con la verifica di due condizioni – all'inizio e alla fine del blocco – e visualizzando eventuali valori diversi in ogni caso (ad esempio numeri 1 и 2). Se nessuna delle condizioni è soddisfatta, quindi output nullo:

Importazione di un frammento mobile in Power Query

Dopo aver fatto clic su OK otteniamo la seguente immagine:

Importazione di un frammento mobile in Power Query

Ora andiamo alla scheda. Trasformazione e scegli una squadra Riempi – Giù (Trasforma – Riempi – Giù) – i nostri uno e due si allungheranno lungo la colonna:

Importazione di un frammento mobile in Power Query

Bene, allora, come puoi immaginare, puoi semplicemente filtrare le unità nella colonna condizionale – ed ecco il nostro ambito dato:

Importazione di un frammento mobile in Power Query

Non resta che alzare la prima riga all'intestazione con il comando Usa la prima riga come intestazioni linguetta Casa (Home – Usa la prima riga come intestazioni) e rimuovere la colonna non necessaria più condizionale facendo clic con il pulsante destro del mouse sulla sua intestazione e selezionando il comando Elimina colonna (Elimina colonna):

Problema risolto. Ora, quando si modificano i dati nel file di testo di origine, la query determinerà ora indipendentemente l'inizio e la fine del frammento "fluttuante" dei dati di cui abbiamo bisogno e importerà ogni volta il numero corretto di righe. Naturalmente, questo approccio funziona anche nel caso di importazione di file XLSX, non TXT, nonché quando si importano tutti i file da una cartella contemporaneamente con il comando Dati – Ottieni dati – Da file – Da cartella (Dati — Ottieni dati — Da file — Da cartella).

  • Assemblaggio di tabelle da file diversi tramite Power Query
  • Riprogettazione di una tabella incrociata in modo flat con macro e Power Query
  • Creazione di un diagramma di Gantt del progetto in Power Query

Lascia un Commento