Kapslade uttryck: Power Query-miljöer

I den här självstudien lär du dig om kapslade uttryck, objekt och miljöer i . Kapslade uttryck och variabler kommer att användas för att diskutera hur miljöer fungerar och hjälpa till att generera data. Du kommer också att lära dig att hantera vanliga scenarier när du transformerar kapslade objekt.

Innehållsförteckning

Skapa kapslade uttryck

Uttryck definieras som en formel som används för att konstruera värde.

Kapslade uttryck: Power Query-miljöer

Uttrycket i formelfältet är byggt från underuttryck. Literalerna 1 och 2 är underuttryck av det överordnade uttrycket.

Variabler definieras som namngivna värden. Detta är en provpost.

Kapslade uttryck: Power Query-miljöer

Om du öppnar fönstret Advanced Editor kan du se de variabler som används i frågan.

Kapslade uttryck: Power Query-miljöer

Variablerna a , b och c representerar var och en ett värde som är resultatet av ett uttryck som du ofta hittar efter ett likhetstecken. Alla variabler inom det överordnade uttrycket, som är själva posten, utgör miljön för den posten. Inom den miljön måste varje variabel vara unik.

Så om du lägger till en annan variabel som heter c , kommer du att se ett felmeddelande under Advanced Editor-fönstret.

Kapslade uttryck: Power Query-miljöer

Kapslade uttryck: Power Query-miljöer

Posten kan komma åt alla sina underuttryck med hjälp av identifierare eller variabelnamn. Men för kapslade uttryck i posten är varje miljö olika eftersom de kan komma åt alla andra variabler i posten förutom sig själva.

I det här exemplet kan du se att variabel c refererar till sig själv.

Kapslade uttryck: Power Query-miljöer

Om du trycker på klar får du ett felmeddelande.

Kapslade uttryck: Power Query-miljöer

Om du extraherar värdet på c genom att lägga till objektåtkomstoperatorn får du ett resultat. Du kan också få samma resultat med uttrycket let eftersom samma regler tillämpas på det.

Kapslade uttryck: Power Query-miljöer

Förstå kapslade uttryck i en miljö

Detta är ytterligare ett exempel på ett rekordvärde.

Kapslade uttryck: Power Query-miljöer

Om du öppnar fönstret Advanced Editor kan du se att variablerna a och b delar samma miljö som är den yttersta miljön. Du kommer också att se att variablerna x , y och z , är underuttryck av det överordnade uttrycket a .

Kapslade uttryck: Power Query-miljöer

Varje variabel kan komma åt alla andra variabler i den kapslade posten utom dem själva. Du kan anropa en variabel som finns i en annan miljö. I det här exemplet kan du se att z refererar till b som är i den yttre miljön.

Kapslade uttryck: Power Query-miljöer

Variablerna x , y och z kan komma åt b eftersom b är en del av deras överordnade uttrycksmiljö. Du kan också ha samma variabel men i olika miljöer.

I detta andra exempel kan du se att den inre och yttre posten har en variabel x .

Kapslade uttryck: Power Query-miljöer

Variabler måste vara unika i sin egen miljö. Det närmaste x som är tilldelat en variabel kommer att användas. I den här exempelfrågan används det inre x-et eftersom det ligger närmare från perspektivet för post a .

Kapslade uttryck: Power Query-miljöer

I denna andra fråga används det närmaste x som är nära variabel b i uttrycket.

Kapslade uttryck: Power Query-miljöer

Den yttre variabeln b kan referera till variabeln x inuti post a med hjälp av objektåtkomstoperatorn. Du måste referera till variabeln a och sedan komma åt x med en uppsättning hakparenteser. På samma sätt kan post a referera till variabeln x inuti variabel b .

Kapslade uttryck: Power Query-miljöer

När miljön för den kapslade posten a slås samman med variabler från det överordnade uttrycket, leder det till en konflikt eftersom x finns två gånger och alla variabler måste vara unika i sin miljö. Eftersom en variabel inte kan referera till sig själv, löses konflikten genom att referera till det yttre x.

Kapslade uttryck: Power Query-miljöer

Att lösa vanliga scenarier

Ett vanligt scenario är att transformera kapslade objekt. För att demonstrera kommer denna tabell att användas.

Kapslade uttryck: Power Query-miljöer

Om du vill hämta ett värde från den yttre tabellen och placera det i den kapslade tabellen, finns det två sätt att uppnå det. Den första metoden är att använda alternativet Lägg till anpassad kolumn .

Klicka på tabellikonen i det övre vänstra hörnet av förhandsgranskningsfönstret och välj Lägg till anpassad kolumn.

Kapslade uttryck: Power Query-miljöer

Ange Temp som kolumnnamn och ange en platshållare i den anpassade. När du är klar trycker du på OK.

Kapslade uttryck: Power Query-miljöer

Inuti formelfältet ersätter du varje uttryck med en anpassad funktion genom att lägga till en kolumn i din kapslade tabell. Starta logiken för en anpassad funktion och kalla den OT för yttre tabell. Lägg sedan till gå-till-skylten.

Använd sedan funktionen Table.AddColumn för att lägga till en kolumn. Se tabellen i den yttre tabellen som finns i kolumnen Namn. Och ange sedan ett nytt kolumnnamn.

I det här exemplet är kolumnnamnet Intäkt . Ange varje funktion för att få värdena för varje rad i kolumnen Hämta intäkter.

Kapslade uttryck: Power Query-miljöer

Om du klickar på utrymmet inuti cellen i en rad i kolumnen Temp, får du en förhandsvisning av den kapslade tabellen under förhandsgranskningsfönstret. Du kommer att se att varje rad har värdet av den yttre tabellen.

Kapslade uttryck: Power Query-miljöer

Använda variabler för att lagra värden

Den andra metoden för att transformera kapslade objekt är att använda variabler för att lagra värden. Lägg först till en anpassad kolumn och skriv in Temp2 som kolumnnamn. För formeln använder du uttrycket let för att lagra värden i variabler.

Mata in let och skriv sedan ett variabelnamn. I det här exemplet är variabelnamnet myR . Jämställ sedan variabeln med kolumnen Få intäkter. Därefter anger du in -satsen och använder funktionen Table.AddColumn för att lägga till en kolumn i den kapslade tabellen.

För den första parametern i funktionen anger du kolumnen Namn som innehåller de kapslade tabellerna. Namnge sedan den nya kolumnen Intäkter. Använd var och en för att anropa variablerna för varje rad.

Kapslade uttryck: Power Query-miljöer

Om du klickar på utrymmet inuti cellen i en rad i Temp2-kolumnen ser du att den hämtade värdena från den yttre tabellen.

Kapslade uttryck: Power Query-miljöer

Ett annat vanligt scenario är en uppslagning där det inte finns någon delad nyckel. För detta scenario kommer två exempeltabeller att användas: en kategoritabell och en produkttabell .

Kapslade uttryck: Power Query-miljöer

Kapslade uttryck: Power Query-miljöer

Använd kategoritabellen som en iscensättningsfråga för att komplettera produktdimensionstabellens attribut. Eftersom det inte finns någon delad nyckel kan en sammanslagning inte utföras. Det första du ska göra är att kapsla in hela kategoritabellen i produkttabellfrågan med hjälp av Lägg till anpassad kolumn.

Lägg till en anpassad kolumn och skriv Kategori som kolumnnamn. Ring sedan kategorifrågan i den anpassade formeln.

Kapslade uttryck: Power Query-miljöer

Efter det har du nu kapslat hela kategoritabellen i varje rad i produkttabellen.

Kapslade uttryck: Power Query-miljöer

När du klickar på utrymmet inuti cellen i en rad i kolumnen Kategori kan du se hela kategoritabellen i varje rad.

Kapslade uttryck: Power Query-miljöer

Hämta ett enda värde

Om du bara vill hämta ett enstaka värde behöver du filtrera ned kategoritabellen till en enda rad där en del av strängen från produkten har en matchning till produktgruppen i kategoritabellen.

Öppna dialogrutan Anpassad kolumn genom att trycka på kugghjulsknappen bredvid Added Custom i rutan Tillämpade steg.

Kapslade uttryck: Power Query-miljöer

Lägg till funktionen Table.SelectRows i formeln . För den första parametern används kategoritabellen. Den andra parametern använde funktionen Text.Contains som ett villkor. För den inre tabellen kontrollerar denna funktion om en text innehåller en del från produktsträngen i den yttre tabellen.

Kapslade uttryck: Power Query-miljöer

När du kommer åt det yttre bordet kommer du att märka detlägger till varje nyckelord i formelfältet. Det är en unär funktion som tar understrecket ( _ ) som en namnlös variabel. Men eftersom du bara kommer åt en kolumn kan den utelämnas.

Kapslade uttryck: Power Query-miljöer

Om du klickar på utrymmet inuti cellen i en rad i kolumnen Kategori, kommer du nu att se en enda rad i var och en av de kapslade tabellerna.

Kapslade uttryck: Power Query-miljöer

Därifrån kan du extrahera ett värde för kategorin med kombinationen av rad- och fältåtkomstoperatorerna.

Gå tillbaka till dialogrutan Anpassad kolumn och lägg till operatorerna i formeln. För att få den första raden i tabellen, skriv in 0 inom en uppsättning parenteser. Lista sedan fältnamnet Kategori inom en uppsättning hakparenteser.

Kapslade uttryck: Power Query-miljöer

För att framtidssäkra lösningen kan du lägga till ett frågetecken ( ? ) i slutet för att ändra beteendet som inte hittades från att returnera ett fel till en noll.



Slutsats

Miljöer och kapslade uttryck hjälper din fråga att få fram vissa värden från dina koder för att ge önskvärda resultat. Att vara medveten om dem är viktigt när du skriver för när du förstår dem kommer du att kunna lösa mer avancerade och komplexa scenarier.

Melissa


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.