Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Mudassir: Per oggi, abbiamo un problema molto interessante con cui lavorare. Il problema con questo file è che è stato risolto delimitato da colonne e non so come risolverlo utilizzando Microsoft Power Query. Puoi guardare il video completo di questo tutorial in fondo a questo blog.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Innanzitutto, non è stato facile per me eliminare le colonne in modo dinamico. In secondo luogo, in questo rapporto abbiamo una tabella con una larghezza di colonna diversa e poi un'altra tabella con una larghezza di colonna diversa.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Quindi, se applico dinamicamente un delimitatore in alto, non sarei in grado di ottenere i dati in modo ordinato. Voglio ottenere tutti questi dati dalla seconda tabella e i miei numeri di prodotto dalla prima tabella. Voglio anche il numero del lavoro in ogni riga di tutte le tabelle.

Ho provato a risolverlo da solo, ma poiché questo ha qualcosa a che fare con la query di potenza avevo bisogno dell'aiuto di Melissa. Pensavo che le ci sarebbero voluti almeno due giorni, ma è riuscita a trovare subito una soluzione.

Melissa ci mostrerà come ha risolto questo complicato problema. Penso che la maggior parte delle persone avrà a che fare con questo tipo di problemi e sta cercando modi per risolverli.

Melissa: Il primo suggerimento è che se stai guardando un file di lunghezza fissa, puoi andare alla scheda Visualizza e attivare l' opzione A spaziatura fissa .

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Possiamo vedere che si tratta di un carattere a lunghezza fissa. Possiamo anche vedere le intestazioni, le tabelle iniziali e le sottotabelle. Queste sono le parti che ci interessano e da cui vogliamo estrarre.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Inoltre, assicurati di avere la barra della formula abilitata. È sempre una buona cosa averlo visibile sullo schermo poiché lo useremo frequentemente per apportare lievi modifiche all'input.

Ho creato un parametro per il percorso del file in cui ho archiviato il file CSV. L'ho portato come file di staging e l'ho aggiunto al mio parametro di posizione del file. Quindi ho creato un riferimento e lavorerò da quel riferimento. Quindi questo è ciò che stiamo guardando in questo momento in Microsoft Power query.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Sommario

Aggiunta di una colonna di indice

Di solito, quando inizio a lavorare su un file come questo, ho bisogno di conoscere i requisiti del cliente. Chiedo di cosa ha bisogno il cliente e cosa cercare.

In questo caso, vogliamo il numero dell'articolo e il numero del lavoro dalle intestazioni, quindi vogliamo tutti i dettagli che appartengono a quella specifica intestazione.

Avremo bisogno di una chiave per riunire quelle cose. Ma se non è presente alcuna chiave, allora il mio go-to è aggiungere un index column . Faccio clic sull'icona della mini tabella, seleziono Aggiungi colonna indice , quindi aggiungo Da 0 .

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Userò una logica in seguito con le liste, che hanno l'indice a base 0. Avere il tuo indice che inizia da zero in realtà significa che puoi fare riferimento alla stessa riga. Altrimenti, dovrai sottrarre 1 per arrivare a quella posizione in base 0.

Quindi, dobbiamo trovare la posizione in cui si trovano le nostre intestazioni, cosa che possiamo fare abbastanza facilmente perché quelle intestazioni vengono ripetute costantemente nell'intero file.

Per iniziare, copiamo questo valore:

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Aggiungi una nuova query vuota, incollala e chiamala HeaderID .

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Farò lo stesso processo per le sottotabelle. Copierò quella stringa di testo, creerò un'altra query vuota e incollerò quel valore. Questa sarà la stringa che useremo quando cercheremo righe dettagliate.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Se questo processo modifica in qualche modo l'intestazione di una qualsiasi di queste tabelle, tutto ciò che devo fare è modificare una delle stringhe di testo e il file funzionerà di nuovo.

Non devo davvero immergermi nel codice M per cercare quella stringa che stiamo cercando. Possiamo semplicemente usarlo come parametro.

Abilitiamo il caricamento per queste due query.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Creazione di un elenco di buffer in Microsoft Power Query

La prima cosa che farò è trasformare Column1 in un elenco facendo riferimento e caricandolo in memoria una volta. In questo modo, non devo effettuare chiamate ripetute al file.

Aprirò l'editor avanzato e lo posizionerò completamente in alto. Quando utilizzi l'interfaccia utente per creare il tuo codice, farà riferimento al passaggio precedente.

Quando posizioni un passaggio del buffer in qualsiasi altra parte del tuo codice e desideri apportare una modifica, in un secondo momento, ti aiuterà ad apportare le modifiche al passaggio che stai creando manualmente.

Chiamerò questo BufferList e farò riferimento a Column1. Per caricarlo in memoria, aggiungerò un passaggio List.Buffer .

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Ecco la mia variabile fino in cima. Posso fare riferimento più e più volte.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

La prima cosa che voglio determinare è dove iniziano le mie intestazioni perché ho bisogno di una chiave per mantenere queste sezioni di intestazione e ottenere un singolo valore per tutte quelle righe. Per fare ciò, aggiungerò una colonna personalizzata e la chiamerò Header .

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Scriverò che se Column1 è uguale al nostro ID intestazione, allora voglio che il mio numero di indice sia nullo.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Di conseguenza, ha trovato il testo e ha restituito 5 e 23.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Ho bisogno di quel valore in tutte le righe, quindi devo riempirlo. Puoi semplicemente fare clic con il pulsante destro del mouse per riempire, ma puoi anche utilizzare una sintassi molto semplice e aggiungerla nella barra della formula.

In questo caso ho aggiunto Table.FillDown e nella stringa di testo ho indicato quale colonna vogliamo riempire (Header).

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Ora, l'abbiamo riempito per tutte le righe. Abbiamo una chiave per tutte le sezioni di intestazione e tutte le sezioni di riga perché condividono tutte questo valore.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Separare le intestazioni dalle righe

Il passaggio successivo consiste nel dividere le intestazioni dalle righe. Aggiungerò un'altra colonna personalizzata e la chiamerò Temp . Questa volta faremo qualcosa di più elaborato e sfrutteremo quella BufferList che ho creato in precedenza.

Useremo un paio di funzioni liste per esaminare ciascuna delle posizioni e scoprire se c'è una corrispondenza con l'indice.

Inizierò con un'istruzione if e utilizzerò List.Contains per cercare una posizione specifica in BufferList e fare riferimento alla query HeaderID .

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Vogliamo trovarlo per l'intera lunghezza del file e quindi restituire la posizione dell'elemento all'interno dell'elenco. Se corrisponde all'indice, abbiamo una corrispondenza per quella riga specifica.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Quindi voglio restituire un valore per identificare l'intestazione. In questo caso, sto solo restituendo una H. Copierò la sintassi in modo da non dover riscrivere tutto da capo.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Dobbiamo anche identificare la sezione della riga. Se l'elenco non contiene HeaderID , ma DetailID , allora siamo su una sezione di riga.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Se Column1 è una stringa di testo vuota, voglio che rimanga empty . In caso contrario, voglio che sia null .

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Questa opposizione ha ottenuto la riga di intestazione e ha restituito una H, quindi ha trovato una riga dettagliata e ha restituito una R. Quindi ha restituito 0 per tutti gli elementi condivisi all'interno di quella sezione di riga.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Questi spazi vuoti o nulli sono importanti perché ti consentono di riempire. Il riempimento verso il basso non si sposterà tra quelle celle vuote, quindi possiamo eliminarle in seguito.

Lo faremo nella barra della formula e utilizzeremo di nuovo Table.FillDown . Vuole un elenco con il nome della colonna, che è la nostra colonna Temp .

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Ora abbiamo i valori H e R ripetuti in tutta questa colonna, il che significa che possiamo effettivamente dividere le intestazioni dalle sezioni dettagliate.

Puoi anche riempirlo dall'interfaccia utente se non vuoi scrivere il codice. Puoi semplicemente fare clic con il pulsante destro del mouse e selezionare Fill , quindi Down .

Rimozione di valori null e spazi vuoti in Microsoft Power Query

Ora che abbiamo questo diritto, possiamo eliminare le cose di cui non abbiamo bisogno. Tutto ciò che è nullo o contiene uno spazio vuoto sono le righe di cui non abbiamo bisogno e che devono essere rimosse. Possiamo eliminarli filtrando.

Dividere le sezioni

Una volta rimossi quegli spazi vuoti e nulli, ci rimane tutto ciò di cui abbiamo bisogno. A questo punto, possiamo semplicemente dividere le sezioni. Possiamo concentrarci sulle righe di intestazione e selezionarle perché hanno una spaziatura separata da tutte le righe di dettaglio (che hanno anche una spaziatura separata).

Aggiungerò un nuovo passaggio nella barra della formula che mi consente di creare un altro filtro sulla stessa colonna. In questo caso, manterrò solo tutte le sezioni dell'intestazione.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Ora, ho tutte quelle righe di intestazione qui.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Posso selezionare Column1 , andare alla barra della formula, selezionare Dividi colonna , quindi dividere per posizioni.

Quindi chiedi a Power query stessa di capirlo. Suggerirà un paio di posizioni. Fare clic su OK per accettare tali posizioni.

Le uniche cose che ci interessano dalle intestazioni sono l' articolo e il numero di lavoro .

All'interno della barra della formula qui, posso rinominare quelli con Item e Job # . Questo mi salverà da un altro passaggio di ridenominazione della colonna.

Dopo questo passaggio, tutto ciò che devo fare è selezionare Item , selezionare Job # e, naturalmente, selezionare la nostra chiave di intestazione . Quindi rimuoverò tutte le altre colonne perché non mi servono più.

Questo sarà il risultato. Dobbiamo ancora ripulire i valori e rimuovere l'elemento di testo e i trattini. Tutto ciò che vogliamo sono quei valori intermedi.

Quindi apriamo questo e deselezionare i trattini e gli elementi.

Ora, tutte le intestazioni sono pronte.

Dobbiamo eseguire lo stesso processo anche per DetailID . Dovrò rinominare quei passaggi in modo che sia più facile per me tornarci un po' più tardi.

Torneremo alla query iniziale che abbiamo iniziato. Abbiamo iniziato con Righe filtrate nel riquadro Passaggi applicati.

Lo copierò e lo aggiungerò al mio filtro. Questa volta non seleziono H ma seleziono R.

Quindi selezionerò Colonna1, vado alla colonna Dividi, dividi per posizioni, quindi faccio in modo che la query di potenza lo capisca.

Questo è ciò che suggerisce la query di alimentazione. Facciamo un tentativo.

Questo in realtà sembra piuttosto buono. Anche le righe totali si dividono perfettamente. Certo, ci sono molti spazi perché avevamo quel rientro.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Tagliare le stringhe di testo in Microsoft Power Query

Selezionerò la prima colonna, quindi premo Giù + Maiusc per selezionare fino a Colonna 1.10. Vai a Trasforma , seleziona Formato , quindi Taglia . Il taglio rimuoverà solo gli spazi in eccesso davanti o alla fine della corda, non in mezzo.

Successivamente, possiamo semplicemente promuovere le intestazioni, quindi non devo digitare tutte le intestazioni oi titoli per queste colonne. Nel passaggio diviso, ho rinominato due colonne. Ora, ovviamente, con 10 colonne, è un po' una seccatura.

Dobbiamo anche sbarazzarci di quei valori in eccesso. Dato che abbiamo i totali, devo usare una di queste ultime tre colonne perché sono le uniche righe che hanno i valori aggiuntivi da qualche parte nel mezzo. Quindi deselezionare quegli spazi vuoti, trattini e testi.

Quindi rimuoverò le colonne non necessarie in modo che tutto ciò che rimane sia una tabella con solo le intestazioni e solo i dettagli. Abbiamo bisogno di una chiave per riunire di nuovo quelle sezioni.

Per questo, possiamo usare un'unione automatica in modo da poter unire la tabella con se stessa per riunire le informazioni. Nella scheda Home selezionare Unisci , quindi selezionare Colonna 5 e la stessa query.

Invece di AllDetails, voglio AllHeaders come tabella iniziale con cui voglio unirmi.

Ciò ha riportato tutte le informazioni dalla tabella di intestazione con una singola riga per ogni articolo e ogni numero di lavoro.

Abbiamo usato una chiave per unire con le righe di dettaglio. Se premo di lato nello spazio bianco qui, vedremo un'anteprima di tutte le righe che appartengono all'intestazione 5.

Rimuoveremo la colonna finale qui e quindi avremo finito di correggere la larghezza della colonna fissa mista in Microsoft Power query.

Esercitazione su Microsoft Power Query su come risolvere i problemi di larghezza delle colonne fisse miste

Conclusione

In questo tutorial, abbiamo trovato un modo per risolvere i problemi di larghezza fissa delle colonne miste utilizzando Microsoft Power Query. Se ti sono piaciuti i contenuti trattati in questo particolare tutorial, non dimenticare di iscriverti al canale TV LuckyTemplates.

Abbiamo un'enorme quantità di contenuti che escono continuamente da me e da una serie di creatori di contenuti, tutti dedicati a migliorare il modo in cui utilizzi LuckyTemplates e Power Platform.

Melissa


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere