Espressioni nidificate: ambienti Power Query

Espressioni nidificate: ambienti Power Query

In questo tutorial imparerai le espressioni, gli oggetti e gli ambienti nidificati in Power Query . Le espressioni e le variabili nidificate verranno utilizzate per discutere il funzionamento degli ambienti e aiutare a generare dati. Imparerai anche a gestire scenari comuni durante la trasformazione di oggetti nidificati.

Sommario

Creazione di espressioni nidificate

Le espressioni sono definite come una formula utilizzata per costruire un valore.

Espressioni nidificate: ambienti Power Query

L'espressione nella barra della formula è costituita da sottoespressioni. I letterali 1 e 2 sono sottoespressioni dell'espressione genitore.

Le variabili sono definite come valori denominati. Questo è un record di esempio.

Espressioni nidificate: ambienti Power Query

Se apri la finestra Editor avanzato, puoi vedere le variabili utilizzate nella query.

Espressioni nidificate: ambienti Power Query

Le variabili a , b e c rappresentano ciascuna un valore che è il risultato di un'espressione che troverai spesso dopo un segno di uguale. Tutte le variabili all'interno dell'espressione genitore, che è il record stesso, formano l'ambiente di tale record. All'interno di tale ambiente, ogni variabile deve essere unica.

Quindi, se aggiungi un'altra variabile chiamata c , vedrai un messaggio di errore sotto la finestra dell'editor avanzato.

Espressioni nidificate: ambienti Power Query

Espressioni nidificate: ambienti Power Query

Il record può accedere a tutte le sue sottoespressioni utilizzando identificatori o nomi di variabili. Tuttavia, per le espressioni nidificate all'interno del record, ogni ambiente è diverso perché possono accedere a tutte le altre variabili nel record tranne se stesse.

In questo esempio, puoi vedere che la variabile c fa riferimento a se stessa.

Espressioni nidificate: ambienti Power Query

Se premi fatto, riceverai un messaggio di errore.

Espressioni nidificate: ambienti Power Query

Se estrai il valore di c aggiungendo l'operatore di accesso all'elemento, otterrai un risultato. È inoltre possibile ottenere lo stesso risultato con l' espressione let poiché ad essa vengono applicate le stesse regole.

Espressioni nidificate: ambienti Power Query

Comprensione delle espressioni nidificate in un ambiente

Questo è un altro esempio di valore record.

Espressioni nidificate: ambienti Power Query

Se apri la finestra Editor avanzato, puoi vedere che le variabili a e b condividono lo stesso ambiente che è l'ambiente più esterno. Vedrai anche che le variabili x , y e z , sono sottoespressioni dell'espressione genitore a .

Espressioni nidificate: ambienti Power Query

Ogni variabile può accedere a tutte le altre variabili all'interno del record annidato tranne se stessa. È possibile chiamare una variabile che esiste in un ambiente diverso. In questo esempio, puoi vedere che z fa riferimento a b che si trova nell'ambiente esterno.

Espressioni nidificate: ambienti Power Query

Le variabili x , y e z possono accedere a b perché b fa parte del loro ambiente di espressione padre. Puoi anche avere la stessa variabile ma in ambienti diversi.

In questo altro esempio, puoi vedere che il record interno ed esterno ha una variabile x .

Espressioni nidificate: ambienti Power Query

Le variabili devono essere univoche all'interno del proprio ambiente. Verrà utilizzata la x più vicina assegnata a una variabile. In questa query di esempio viene utilizzata la x interna poiché è più vicina dal punto di vista del record a .

Espressioni nidificate: ambienti Power Query

In quest'altra query, nell'espressione viene utilizzata la x più vicina che è vicina alla variabile b .

Espressioni nidificate: ambienti Power Query

La variabile esterna b può fare riferimento alla variabile x all'interno del record a utilizzando l'operatore di accesso all'elemento. È necessario fare riferimento alla variabile a e quindi accedere a x utilizzando una serie di parentesi quadre. Allo stesso modo, il record a può riferirsi alla variabile x all'interno della variabile b .

Espressioni nidificate: ambienti Power Query

Quando l'ambiente del record annidato a viene unito alle variabili dell'espressione genitore, si genera un conflitto perché x esiste due volte e tutte le variabili devono essere univoche nel loro ambiente. Poiché una variabile non può fare riferimento a se stessa, il conflitto viene risolto facendo riferimento alla x esterna.

Espressioni nidificate: ambienti Power Query

Risoluzione di scenari comuni

Uno scenario comune è la trasformazione di oggetti nidificati. Per dimostrare, verrà utilizzata questa tabella.

Espressioni nidificate: ambienti Power Query

Se vuoi recuperare un valore dalla tabella esterna e inserirlo nella tabella nidificata, ci sono due modi per ottenerlo. Il primo metodo consiste nell'utilizzare l'opzione Aggiungi colonna personalizzata .

Fare clic sull'icona della tabella nell'angolo in alto a sinistra del riquadro di anteprima e selezionare Aggiungi colonna personalizzata.

Espressioni nidificate: ambienti Power Query

Immettere Temp come nome della colonna e immettere un segnaposto nella formula della colonna personalizzata . Una volta fatto, premere OK.

Espressioni nidificate: ambienti Power Query

All'interno della barra della formula, sostituisci ogni espressione con una funzione personalizzata aggiungendo una colonna alla tabella nidificata. Avvia la logica per una funzione personalizzata e chiamala OT per la tabella esterna. Quindi, aggiungi il segno go-to.

Utilizzare quindi la funzione Table.AddColumn per aggiungere una colonna. Fare riferimento alla tabella nella tabella esterna che si trova nella colonna Nomi. E quindi inserisci un nuovo nome di colonna.

Per questo esempio, il nome della colonna utilizzato è Revenue . Immettere la funzione each per ottenere i valori di ogni riga nella colonna Get Revenue.

Espressioni nidificate: ambienti Power Query

Se fai clic sullo spazio all'interno della cella di una riga nella colonna Temp, otterrai un'anteprima della tabella nidificata sotto il riquadro di anteprima. Vedrai che ogni riga ha il valore della tabella esterna.

Espressioni nidificate: ambienti Power Query

Utilizzo di variabili per memorizzare valori

Il secondo metodo per trasformare gli oggetti nidificati consiste nell'utilizzare le variabili per memorizzare i valori. Innanzitutto, aggiungi una colonna personalizzata e inserisci Temp2 come nome della colonna. Per la formula, utilizzare l' espressione let per memorizzare i valori nelle variabili.

Immettere let e quindi scrivere un nome di variabile. Per questo esempio, il nome della variabile è myR . Successivamente, identifica la variabile con la colonna Ottieni entrate. Successivamente, inserisci la clausola in e usa la funzione Table.AddColumn per aggiungere una colonna alla tabella nidificata.

Per il primo parametro della funzione, inserire la colonna Nomi che contiene le tabelle nidificate. Successivamente, assegna un nome alla nuova colonna Entrate. Utilizzare each per chiamare le variabili di ciascuna riga.

Espressioni nidificate: ambienti Power Query

Se fai clic sullo spazio all'interno della cella di una riga nella colonna Temp2, vedrai che ha recuperato i valori dalla tabella esterna.

Espressioni nidificate: ambienti Power Query

Un altro scenario comune è una ricerca in cui non esiste una chiave condivisa. Per questo scenario verranno utilizzate 2 tabelle di esempio: una tabella delle categorie e una tabella dei prodotti .

Espressioni nidificate: ambienti Power Query

Espressioni nidificate: ambienti Power Query

Utilizzare la tabella delle categorie come query di staging per integrare gli attributi della tabella delle dimensioni del prodotto. Poiché non esiste una chiave condivisa, non è possibile eseguire un'unione. La prima cosa da fare è nidificare l'intera tabella delle categorie nella query della tabella dei prodotti utilizzando Aggiungi colonna personalizzata.

Aggiungi una colonna personalizzata e scrivi Categoria come nome della colonna. Quindi, nella formula personalizzata, chiama la query di categoria.

Espressioni nidificate: ambienti Power Query

Successivamente, ora hai nidificato l'intera tabella delle categorie in ogni riga della tabella dei prodotti.

Espressioni nidificate: ambienti Power Query

Quando fai clic sullo spazio all'interno della cella di una riga nella colonna Categoria, puoi vedere l'intera tabella delle categorie in ogni riga.

Espressioni nidificate: ambienti Power Query

Recupero di un singolo valore

Se desideri recuperare un solo valore, devi filtrare la tabella delle categorie fino a una singola riga in cui una parte della stringa del prodotto ha una corrispondenza con il gruppo di prodotti nella tabella delle categorie.

Apri la finestra di dialogo Colonna personalizzata premendo il pulsante a forma di ingranaggio accanto a Aggiunta personalizzata nel riquadro Passaggi applicati.

Espressioni nidificate: ambienti Power Query

Nella formula, aggiungi la funzione Table.SelectRows . Per il primo parametro viene utilizzata la tabella Categoria. Il secondo parametro utilizzava la funzione Text.Contains come condizione. Per la tabella interna, questa funzione controlla se un testo contiene una parte della stringa del prodotto nella tabella esterna.

Espressioni nidificate: ambienti Power Query

Accedendo alla tabella esterna, noterai che Power Query aggiunge ogni parola chiave all'interno della barra della formula. È una funzione unaria che accetta il carattere di sottolineatura ( _ ) come variabile senza nome. Tuttavia, poiché si accede solo a una colonna, è possibile ometterla.

Espressioni nidificate: ambienti Power Query

Se fai clic sullo spazio all'interno della cella di una riga nella colonna Categoria, ora vedrai una singola riga in ciascuna delle tabelle nidificate.

Espressioni nidificate: ambienti Power Query

Da lì, puoi estrarre un valore per la categoria con la combinazione degli operatori di accesso alla riga e al campo.

Torna alla finestra di dialogo Colonna personalizzata e aggiungi gli operatori nella formula. Per ottenere la prima riga della tabella, inserisci 0 all'interno di una serie di parentesi graffe. Quindi, elenca il nome del campo Categoria all'interno di una serie di parentesi quadre.

Espressioni nidificate: ambienti Power Query

Per rendere la soluzione a prova di futuro, puoi aggiungere un punto interrogativo ( ? ) alla fine per modificare il comportamento non trovato dalla restituzione di un errore a un null.


Funzionamento dell'editor di query nel
linguaggio LuckyTemplates M e nell'editor di query Power in LuckyTemplates

Conclusione

Gli ambienti e le espressioni nidificate aiutano la tua query a far emergere determinati valori dai tuoi codici per fornire risultati desiderabili. Essere consapevoli di loro è importante quando si scrivono funzioni perché quando le capisci, sarai in grado di risolvere scenari più avanzati e complessi.

Melissa


Power Automate si applica a ogni azione nei flussi di lavoro

Power Automate si applica a ogni azione nei flussi di lavoro

Scopri l

Tecniche di modellazione dei dati per organizzare le misure DAX

Tecniche di modellazione dei dati per organizzare le misure DAX

Tecniche di modellazione dei dati per organizzare meglio le misure DAX per un flusso di lavoro più efficiente.

Filtro Power Apps: cosè e come si usa?

Filtro Power Apps: cosè e come si usa?

Scopri come utilizzare la funzione di filtro in Power Apps e come incorporarla nelle formule esistenti all

Come commentare più righe in Python: una guida semplice e veloce

Come commentare più righe in Python: una guida semplice e veloce

Come commentare più righe in Python: una guida semplice e veloce

Connettori Power Automate: numero, testo e data e ora

Connettori Power Automate: numero, testo e data e ora

Acquisisci familiarità con i connettori Power Automate per la manipolazione di numeri, testo e date/ore.

Budget Vs Actual Vs Last Year - Suggerimenti per la rendicontazione finanziaria

Budget Vs Actual Vs Last Year - Suggerimenti per la rendicontazione finanziaria

Ora, è molto facile studiare il budget rispetto all

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 articolo tratta anche come importare oggetti da R a LuckyTemplates.

Che cosè Power Query e M Language: una panoramica dettagliata

Che cosè Power Query e M Language: una panoramica dettagliata

Scopri tutto su Power Query e il linguaggio M per la trasformazione e la preparazione dei dati nel desktop di LuckyTemplates.

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

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.