Nestede uttrykk: Power Query-miljøer

I denne opplæringen lærer du om nestede uttrykk, objekter og miljøer i . Nestede uttrykk og variabler vil bli brukt til å diskutere hvordan miljøer fungerer og bidra til å generere data. Du vil også lære å håndtere vanlige scenarier når du transformerer nestede objekter.

Innholdsfortegnelse

Opprette nestede uttrykk

Uttrykk er definert som en formel som brukes til å konstruere verdi.

Nestede uttrykk: Power Query-miljøer

Uttrykket i formellinjen er bygget opp fra underuttrykk. Bokstavene 1 og 2 er underuttrykk av det overordnede uttrykket.

Variabler er definert som navngitte verdier. Dette er en prøvepost.

Nestede uttrykk: Power Query-miljøer

Hvis du åpner Advanced Editor-vinduet, kan du se variablene som brukes i spørringen.

Nestede uttrykk: Power Query-miljøer

Variablene a , b og c representerer hver en verdi som er resultatet av et uttrykk du ofte finner etter et likhetstegn. Alle variabler i det overordnede uttrykket, som er selve posten, danner miljøet for den posten. Innenfor dette miljøet må hver variabel være unik.

Så hvis du legger til en annen variabel kalt c , vil du se en feilmelding under Advanced Editor-vinduet.

Nestede uttrykk: Power Query-miljøer

Nestede uttrykk: Power Query-miljøer

Posten kan få tilgang til alle underuttrykkene ved hjelp av identifikatorer eller variabelnavn. For nestede uttrykk i posten er imidlertid hvert miljø forskjellig fordi de har tilgang til alle andre variabler i posten bortsett fra seg selv.

I dette eksemplet kan du se at variabel c refererer til seg selv.

Nestede uttrykk: Power Query-miljøer

Hvis du trykker ferdig, får du en feilmelding.

Nestede uttrykk: Power Query-miljøer

Hvis du trekker ut verdien av c ved å legge til elementtilgangsoperatøren, får du et resultat. Du kan også oppnå det samme resultatet med let- uttrykket fordi de samme reglene brukes på det.

Nestede uttrykk: Power Query-miljøer

Forstå nestede uttrykk i et miljø

Dette er nok et eksempel på en rekordverdi.

Nestede uttrykk: Power Query-miljøer

Hvis du åpner Advanced Editor-vinduet, kan du se at variablene a og b deler det samme miljøet som er det ytterste miljøet. Du vil også se at variablene x , y og z , er underuttrykk av det overordnede uttrykket a .

Nestede uttrykk: Power Query-miljøer

Hver variabel har tilgang til alle de andre variablene i den nestede posten bortsett fra seg selv. Du kan kalle en variabel som eksisterer i et annet miljø. I dette eksemplet kan du se at z refererer til b som er i det ytre miljøet.

Nestede uttrykk: Power Query-miljøer

Variablene x , y og z kan få tilgang til b fordi b er en del av deres overordnede uttrykksmiljø. Du kan også ha samme variabel, men i forskjellige miljøer.

I dette andre eksemplet kan du se at den indre og ytre posten har en variabel x .

Nestede uttrykk: Power Query-miljøer

Variabler må være unike i sitt eget miljø. Den nærmeste x tilordnet en variabel vil bli brukt. I denne eksempelspørringen brukes den indre x-en siden den er nærmere fra perspektivet til post a .

Nestede uttrykk: Power Query-miljøer

I denne andre spørringen brukes den nærmeste x som er nær variabel b i uttrykket.

Nestede uttrykk: Power Query-miljøer

Den ytre variabelen b kan referere til variabelen x inne i post a ved å bruke elementtilgangsoperatøren. Du må referere til variabelen a og deretter få tilgang til x ved å bruke et sett med firkantede parenteser. På samme måte kan post a referere til variabelen x inne i variabel b .

Nestede uttrykk: Power Query-miljøer

Når miljøet til den nestede posten a slås sammen med variabler fra det overordnede uttrykket, fører det til en konflikt fordi x eksisterer to ganger og alle variabler må være unike i miljøet. Siden en variabel ikke kan referere til seg selv, løses konflikten ved å referere til den ytre x.

Nestede uttrykk: Power Query-miljøer

Løse vanlige scenarier

Et vanlig scenario er transformering av nestede objekter. For å demonstrere vil denne tabellen bli brukt.

Nestede uttrykk: Power Query-miljøer

Hvis du ønsker å hente en verdi fra den ytre tabellen og plassere den i den nestede tabellen, er det to måter å oppnå det på. Den første metoden er å bruke alternativet Legg til egendefinert kolonne .

Klikk på tabellikonet øverst til venstre i forhåndsvisningsruten og velg Legg til egendefinert kolonne.

Nestede uttrykk: Power Query-miljøer

Skriv inn Temp som kolonnenavn og skriv inn en plassholder i egendefinert. Når du er ferdig, trykk OK.

Nestede uttrykk: Power Query-miljøer

Inne i formellinjen erstatter du hvert uttrykk med en egendefinert funksjon ved å legge til en kolonne i den nestede tabellen. Start logikken for en tilpasset funksjon og kall den OT for ytre tabell. Deretter legger du til gå-til-skiltet.

Deretter bruker du Table.AddColumn -funksjonen for å legge til en kolonne. Se tabellen i den ytre tabellen i Navn-kolonnen. Og skriv deretter inn et nytt kolonnenavn.

For dette eksemplet er kolonnenavnet som er brukt Inntekt . Skriv inn hver funksjon for å få verdiene for hver rad i Hent inntekt-kolonnen.

Nestede uttrykk: Power Query-miljøer

Hvis du klikker på plassen inne i cellen i en rad i Temp-kolonnen, får du en forhåndsvisning av den nestede tabellen under forhåndsvisningsruten. Du vil se at hver rad har verdien av den ytre tabellen.

Nestede uttrykk: Power Query-miljøer

Bruke variabler for å lagre verdier

Den andre metoden for å transformere nestede objekter er ved å bruke variabler til å lagre verdier. Først legger du til en egendefinert kolonne og skriv inn Temp2 som kolonnenavn. For formelen bruker du let- uttrykket for å lagre verdier i variabler.

Skriv inn let og skriv deretter et variabelnavn. For dette eksemplet er variabelnavnet myR . Deretter sidestiller du variabelen med Hent inntekt-kolonnen. Etter det, skriv inn i -leddet og bruk Table.AddColumn -funksjonen for å legge til en kolonne i den nestede tabellen.

For den første parameteren til funksjonen, skriv inn Navn-kolonnen som inneholder de nestede tabellene. Deretter navngir du den nye kolonnen Inntekter. Bruk hver for å kalle variablene for hver rad.

Nestede uttrykk: Power Query-miljøer

Hvis du klikker på plassen inne i cellen i en rad i Temp2-kolonnen, vil du se at den hentet verdiene fra den ytre tabellen.

Nestede uttrykk: Power Query-miljøer

Et annet vanlig scenario er et oppslag der det ikke er noen delt nøkkel. For dette scenariet vil 2 eksempeltabeller bli brukt: en kategoritabell og en produkttabell .

Nestede uttrykk: Power Query-miljøer

Nestede uttrykk: Power Query-miljøer

Bruk kategoritabellen som en iscenesettelsesspørring for å komplimentere attributtene til produktdimensjonstabellen. Siden det ikke er noen delt nøkkel, kan en sammenslåing ikke utføres. Det første du må gjøre er å legge inn hele kategoritabellen i produkttabellspørringen ved å bruke Add Custom Column.

Legg til en egendefinert kolonne og skriv Kategori som kolonnenavn. Deretter kaller du kategorispørringen i den egendefinerte formelen.

Nestede uttrykk: Power Query-miljøer

Etter det har du nå nestet hele kategoritabellen i hver rad i produkttabellen.

Nestede uttrykk: Power Query-miljøer

Når du klikker på plassen inne i cellen i en rad i Kategori-kolonnen, kan du se hele kategoritabellen i hver rad.

Nestede uttrykk: Power Query-miljøer

Henter en enkelt verdi

Hvis du kun ønsker å hente en enkelt verdi, må du filtrere kategoritabellen ned til en enkelt rad hvor en del av strengen fra produktet har samsvar med produktgruppen i kategoritabellen.

Åpne dialogboksen Egendefinert kolonne ved å trykke på tannhjulknappen ved siden av Lagt egendefinert i ruten Applied Steps.

Nestede uttrykk: Power Query-miljøer

I formelen legger du til Table.SelectRows -funksjonen. For den første parameteren brukes Kategoritabellen. Den andre parameteren brukte Text.Contains -funksjonen som en betingelse. For den indre tabellen sjekker denne funksjonen om en tekst inneholder en del fra produktstrengen i den ytre tabellen.

Nestede uttrykk: Power Query-miljøer

Når du får tilgang til det ytre bordet, vil du legge merke til detlegger til hvert nøkkelord i formellinjen. Det er en unær funksjon som tar understreken ( _ ) som en navnløs variabel. Men siden du bare har tilgang til en kolonne, kan den utelates.

Nestede uttrykk: Power Query-miljøer

Hvis du klikker på plassen inne i cellen i en rad i Kategori-kolonnen, vil du nå se en enkelt rad i hver av de nestede tabellene.

Nestede uttrykk: Power Query-miljøer

Derfra kan du trekke ut en verdi for kategorien med kombinasjonen av rad- og felttilgangsoperatørene.

Gå tilbake til dialogboksen Egendefinert kolonne og legg til operatorene i formelen. For å få den første raden i tabellen, skriv inn 0 i et sett med krøllede parenteser. List deretter feltnavnet Kategori innenfor et sett med firkantede parenteser.

Nestede uttrykk: Power Query-miljøer

For å fremtidssikre løsningen kan du legge til et spørsmålstegn ( ? ) til slutt for å endre atferden som ikke ble funnet fra å returnere en feil til en null.



Konklusjon

Miljøer og nestede uttrykk hjelper spørringen å få frem visse verdier fra kodene dine for å gi ønskelige resultater. Å være klar over dem er viktig når du skriver, fordi når du forstår dem, vil du kunne løse mer avanserte og komplekse scenarier.

Melissa


Pipe In R: Koblingsfunksjoner med Dplyr

Pipe In R: Koblingsfunksjoner med Dplyr

I denne opplæringen lærer du hvordan du kobler funksjoner sammen ved å bruke dplyr-røroperatøren i programmeringsspråket R.

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX fra LuckyTemplates lar deg returnere rangeringen til et spesifikt tall i hver tabellrad som utgjør en del av en liste med tall.

Trekker ut LuckyTemplates-temaer og bilder fra PBIX

Trekker ut LuckyTemplates-temaer og bilder fra PBIX

Lær hvordan du demonterer en PBIX-fil for å trekke ut LuckyTemplates-temaer og bilder fra bakgrunnen og bruke den til å lage rapporten din!

Excel Formulas Cheat Sheet: Mellomveiledning

Excel Formulas Cheat Sheet: Mellomveiledning

Excel Formulas Cheat Sheet: Mellomveiledning

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

Python i LuckyTemplates: Hvordan installere og sette opp

Python i LuckyTemplates: Hvordan installere og sette opp

Lær hvordan du installerer programmeringsspråket Python i LuckyTemplates og hvordan du bruker verktøyene til å skrive koder og vise visuelle elementer.

Beregning av dynamiske fortjenestemarginer – enkel analyse av LuckyTemplates med DAX

Beregning av dynamiske fortjenestemarginer – enkel analyse av LuckyTemplates med DAX

Lær hvordan du beregner dynamiske fortjenestemarginer ved siden av LuckyTemplates og hvordan du kan få mer innsikt ved å grave dypere inn i resultatene.

Sortering av datotabellkolonner i LuckyTemplates

Sortering av datotabellkolonner i LuckyTemplates

Lær hvordan du sorterer feltene fra kolonner med utvidet datotabell på riktig måte. Dette er en god strategi å gjøre for vanskelige felt.

Finn dine beste produkter for hver region i LuckyTemplates ved å bruke DAX

Finn dine beste produkter for hver region i LuckyTemplates ved å bruke DAX

I denne artikkelen går jeg gjennom hvordan du kan finne de beste produktene dine per region ved å bruke DAX-beregninger i LuckyTemplates, inkludert TOPN- og CALCUATE-funksjonene.

Søppeldimensjon: Hva er det og hvorfor det er alt annet enn søppel

Søppeldimensjon: Hva er det og hvorfor det er alt annet enn søppel

Lær hvordan du bruker en søppeldimensjon for flagg med lav kardinalitet som du ønsker å inkludere i datamodellen din på en effektiv måte.