Geneste uitdrukkingen: Power Query-omgevingen

Geneste uitdrukkingen: Power Query-omgevingen

In deze zelfstudie leert u over geneste expressies, objecten en omgevingen in Power Query . Geneste uitdrukkingen en variabelen worden gebruikt om te bespreken hoe omgevingen werken en helpen bij het genereren van gegevens. U leert ook omgaan met veelvoorkomende scenario's bij het transformeren van geneste objecten.

Inhoudsopgave

Geneste uitdrukkingen maken

Uitdrukkingen worden gedefinieerd als een formule die wordt gebruikt om waarde te construeren.

Geneste uitdrukkingen: Power Query-omgevingen

De uitdrukking in de formulebalk is opgebouwd uit subuitdrukkingen. De letterlijke waarden 1 en 2 zijn subuitdrukkingen van de bovenliggende uitdrukking.

Variabelen worden gedefinieerd als benoemde waarden. Dit is een voorbeeldrecord.

Geneste uitdrukkingen: Power Query-omgevingen

Als u het venster Geavanceerde editor opent, kunt u de variabelen zien die in de query zijn gebruikt.

Geneste uitdrukkingen: Power Query-omgevingen

De variabelen a , b en c vertegenwoordigen elk een waarde die het resultaat is van een uitdrukking die je vaak achter een gelijkteken aantreft. Alle variabelen binnen de bovenliggende expressie, die het record zelf is, vormen de omgeving van dat record. Binnen die omgeving moet elke variabele uniek zijn.

Dus als u een andere variabele met de naam c toevoegt , ziet u een foutmelding onder het Advanced Editor-venster.

Geneste uitdrukkingen: Power Query-omgevingen

Geneste uitdrukkingen: Power Query-omgevingen

Het record heeft toegang tot alle subexpressies met behulp van identifiers of variabelenamen. Voor geneste uitdrukkingen binnen de record is elke omgeving echter anders, omdat ze toegang hebben tot alle andere variabelen in de record, behalve tot zichzelf.

In dit voorbeeld kunt u zien dat variabele c naar zichzelf verwijst.

Geneste uitdrukkingen: Power Query-omgevingen

Als je op gereed drukt, krijg je een foutmelding.

Geneste uitdrukkingen: Power Query-omgevingen

Als u de waarde van c extraheert door de itemtoegangsoperator toe te voegen, krijgt u een resultaat. U kunt hetzelfde resultaat ook verkrijgen met de uitdrukking let omdat dezelfde regels erop worden toegepast.

Geneste uitdrukkingen: Power Query-omgevingen

Inzicht in geneste uitdrukkingen in een omgeving

Dit is weer een voorbeeld van een recordwaarde.

Geneste uitdrukkingen: Power Query-omgevingen

Als u het venster Geavanceerde editor opent, kunt u zien dat de variabelen a en b dezelfde omgeving delen, wat de buitenste omgeving is. Je zult ook zien dat de variabelen x , y en z subuitdrukkingen zijn van de bovenliggende uitdrukking a .

Geneste uitdrukkingen: Power Query-omgevingen

Elke variabele heeft toegang tot alle andere variabelen binnen het geneste record, behalve tot zichzelf. U kunt een variabele aanroepen die in een andere omgeving bestaat. In dit voorbeeld kunt u zien dat z verwijst naar b in de buitenomgeving.

Geneste uitdrukkingen: Power Query-omgevingen

Variabelen x , y en z hebben toegang tot b omdat b deel uitmaakt van hun bovenliggende expressieomgeving. U kunt ook dezelfde variabele hebben, maar in verschillende omgevingen.

In dit andere voorbeeld kunt u zien dat het binnenste en buitenste record een variabele x hebben .

Geneste uitdrukkingen: Power Query-omgevingen

Variabelen moeten uniek zijn binnen hun eigen omgeving. De dichtstbijzijnde x die aan een variabele is toegewezen, wordt gebruikt. In deze voorbeeldquery wordt de binnenste x gebruikt omdat deze dichterbij is vanuit het perspectief van record a .

Geneste uitdrukkingen: Power Query-omgevingen

In deze andere query wordt de dichtstbijzijnde x die in de buurt van variabele b ligt , gebruikt in de uitdrukking.

Geneste uitdrukkingen: Power Query-omgevingen

De buitenste variabele b kan verwijzen naar de variabele x in record a met behulp van de itemtoegangsoperator. U moet verwijzen naar de variabele a en vervolgens toegang krijgen tot x met behulp van vierkante haken. Op dezelfde manier kan record a verwijzen naar de variabele x binnen variabele b .

Geneste uitdrukkingen: Power Query-omgevingen

Wanneer de omgeving van het geneste record a wordt samengevoegd met variabelen uit de bovenliggende expressie, leidt dit tot een conflict omdat x twee keer bestaat en alle variabelen uniek moeten zijn in hun omgeving. Aangezien een variabele niet naar zichzelf kan verwijzen, wordt het conflict opgelost door naar de buitenste x te verwijzen.

Geneste uitdrukkingen: Power Query-omgevingen

Gemeenschappelijke scenario's oplossen

Een veelvoorkomend scenario is het transformeren van geneste objecten. Ter demonstratie wordt deze tabel gebruikt.

Geneste uitdrukkingen: Power Query-omgevingen

Als u een waarde uit de buitenste tabel wilt ophalen en in de geneste tabel wilt plaatsen, zijn er twee manieren om dit te bereiken. De eerste methode is om de optie Aangepaste kolom toevoegen te gebruiken .

Klik op het tabelpictogram in de linkerbovenhoek van het voorbeeldvenster en selecteer Aangepaste kolom toevoegen.

Geneste uitdrukkingen: Power Query-omgevingen

Voer Temp in als kolomnaam en voer een tijdelijke aanduiding in de aangepaste kolomformule in . Als u klaar bent, drukt u op OK.

Geneste uitdrukkingen: Power Query-omgevingen

Vervang in de formulebalk elke uitdrukking door een aangepaste functie door een kolom toe te voegen aan uw geneste tabel. Start de logica voor een aangepaste functie en noem deze OT voor buitenste tabel. Voeg vervolgens het go-to-teken toe.

Gebruik vervolgens de functie Table.AddColumn om een ​​kolom toe te voegen. Raadpleeg de tabel in de buitenste tabel in de kolom Namen. Voer vervolgens een nieuwe kolomnaam in.

Voor dit voorbeeld is de gebruikte kolomnaam Opbrengst . Voer de functie Each in om de waarden van elke rij in de kolom Get Revenue te krijgen.

Geneste uitdrukkingen: Power Query-omgevingen

Als u op de ruimte in de cel van een rij in de kolom Temp klikt, krijgt u een voorbeeld van de geneste tabel onder het voorbeeldvenster. U zult zien dat elke rij de waarde heeft van de buitenste tabel.

Geneste uitdrukkingen: Power Query-omgevingen

Variabelen gebruiken om waarden op te slaan

De tweede methode om geneste objecten te transformeren is door variabelen te gebruiken om waarden op te slaan. Voeg eerst een aangepaste kolom toe en voer Temp2 in als kolomnaam. Gebruik voor de formule de uitdrukking let om waarden in variabelen op te slaan.

Voer let in en schrijf vervolgens een variabelenaam. Voor dit voorbeeld is de naam van de variabele myR . Stel vervolgens de variabele gelijk aan de kolom Get Revenue. Voer daarna de in- clausule in en gebruik de functie Table.AddColumn om een ​​kolom aan de geneste tabel toe te voegen.

Voer voor de eerste parameter van de functie de kolom Namen in die de geneste tabellen bevat. Geef vervolgens de nieuwe kolom Omzet een naam. Gebruik elk om de variabelen van elke rij aan te roepen.

Geneste uitdrukkingen: Power Query-omgevingen

Als u op de spatie in de cel van een rij in de Temp2-kolom klikt, ziet u dat de waarden uit de buitenste tabel zijn opgehaald.

Geneste uitdrukkingen: Power Query-omgevingen

Een ander veelvoorkomend scenario is een zoekopdracht waarbij er geen gedeelde sleutel is. Voor dit scenario worden 2 voorbeeldtabellen gebruikt: een categorietabel en een producttabel .

Geneste uitdrukkingen: Power Query-omgevingen

Geneste uitdrukkingen: Power Query-omgevingen

Gebruik de categorietabel als een faseringsquery om de kenmerken van de productdimensietabel aan te vullen. Aangezien er geen gedeelde sleutel is, kan er geen samenvoeging worden uitgevoerd. Het eerste dat u moet doen, is de volledige categorietabel nesten in de producttabelquery met behulp van Aangepaste kolom toevoegen.

Voeg een aangepaste kolom toe en schrijf Categorie als kolomnaam. Roep vervolgens in de aangepaste formule de categoriequery aan.

Geneste uitdrukkingen: Power Query-omgevingen

Daarna heeft u nu de volledige categorietabel genest in elke rij van de producttabel.

Geneste uitdrukkingen: Power Query-omgevingen

Wanneer u op de ruimte in de cel van een rij in de kolom Categorie klikt, ziet u de volledige categorietabel in elke rij.

Geneste uitdrukkingen: Power Query-omgevingen

Een enkele waarde ophalen

Als u slechts één waarde wilt ophalen, moet u de categorietabel filteren tot op één rij waar een deel van de tekenreeks van het product overeenkomt met de productgroep in de categorietabel.

Open het dialoogvenster Aangepaste kolom door op de tandwielknop naast het deelvenster Aangepaste stappen toegevoegd in het deelvenster Toegepaste stappen te drukken.

Geneste uitdrukkingen: Power Query-omgevingen

Voeg in de formule de functie Table.SelectRows toe . Voor de eerste parameter wordt de categorietabel gebruikt. De tweede parameter gebruikte de functie Text.Contains als voorwaarde. Voor de binnenste tabel controleert deze functie of een tekst een deel bevat van de productreeks in de buitenste tabel.

Geneste uitdrukkingen: Power Query-omgevingen

Bij het openen van de buitenste tabel zult u merken dat Power Query elk trefwoord in de formulebalk toevoegt . Het is een unaire functie die het onderstrepingsteken ( _ ) als een naamloze variabele neemt. Aangezien u echter alleen toegang hebt tot een kolom, kan deze worden weggelaten.

Geneste uitdrukkingen: Power Query-omgevingen

Als u op de ruimte in de cel van een rij in de kolom Categorie klikt, ziet u nu een enkele rij in elk van de geneste tabellen.

Geneste uitdrukkingen: Power Query-omgevingen

Van daaruit kunt u een waarde voor de categorie extraheren met de combinatie van de operatoren voor rij- en veldtoegang.

Ga terug naar het dialoogvenster Aangepaste kolom en voeg de operators in de formule toe. Om de eerste rij van de tabel te krijgen, voert u 0 in tussen accolades. Zet vervolgens de veldnaam Categorie tussen vierkante haken.

Geneste uitdrukkingen: Power Query-omgevingen

Om de oplossing toekomstbestendig te maken, kunt u uiteindelijk een vraagteken ( ? ) toevoegen om het niet-gevonden gedrag te wijzigen van het retourneren van een fout naar een null.


Hoe de Query-editor werkt in LuckyTemplates
M Taal en de Power Query-editor in LuckyTemplates

Conclusie

Omgevingen en geneste expressies helpen uw query om bepaalde waarden uit uw codes naar voren te brengen om gewenste resultaten te bieden. Het is belangrijk om je hiervan bewust te zijn bij het schrijven van functies , want als je ze begrijpt, kun je meer geavanceerde en complexe scenario's oplossen.

Melissa


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten