Hvad er Power Query & M Language: En detaljeret oversigt
Denne vejledning giver et overblik over Power Query Editor og M-sproget inde på LuckyTemplates-skrivebordet.
Jeg har fundet ud af, at de fleste mennesker bliver forvirrede med hensyn til at forstå, hvordan DAX fungerer i rækkesammenhæng . Dette skyldes, at rækkekontekst kan være ret kompliceret og unødvendigt. Så vi kommer til at berøre rækkekonteksten gennem denne artikel. Du kan se den fulde video af denne tutorial nederst på denne blog.
Den måde, jeg tænker på rækkekontekst på, er gennem iterationer eller itererende funktioner . Så snart jeg lavede den skelnen i mit sind, gav det mere mening i forhold til, hvad der faktisk foregik i beregningsmotoren.
Som en opsummering har vi diskuteret, at der er tre typer kontekster: evalueringskonteksten , filterkonteksten og rækkekonteksten .
Enhver DAX-beregning fungerer i en to-trins proces. Evalueringskonteksten går altid først og derefter forgrener den sig i enten filterkontekst eller rækkekontekst afhængig af hvilken funktion du skriver .
Indholdsfortegnelse
Forstå rækkekontekst
Rækkekontekst handler om iteration.
Jeg vil vise dig et par eksempler, og forhåbentlig vil dette hjælpe dig med at forstå, hvad rækkekontekst faktisk gør i bagenden.
Rækkekontekst versus filterkontekst
I vores eksempel bliver formlen beregnet viafordi det er en simpel sammenlægning. Den opsummerer hele kolonnen Antal, efter at alle de indledende filtre er blevet sat på plads.
Det indledende filter på salgstabellen er produkt 1. Ved at opsummere hver mængde, der er blevet solgt, får vi 165.
Nu vil jeg vise dig, hvordan du får nøjagtig det samme resultat, men beregnet på en meget anderledes måde. Først vil jeg oprette et nyt mål for mængde solgt iteration ved hjælp af en itererende formel.
Eksempler på itererende funktioner inkluderer SUMX ,, MANYX og COUNTX . I dette tilfælde skal vi bruge SUMX .
SUMX - funktionen har bedt mig om at indsætte en tabel, så jeg har tænkt mig at indsætte Salgstabellen. Og så bad den mig om et udtryk, så jeg satte bare i kolonnen Mængde.
Denne funktion er ret anderledes end den første funktion, men jeg får nøjagtig det samme resultat, når jeg trækker den ind.
Vi får nøjagtig de samme resultater her, fordi det i sidste ende er den samme beregning. Det blev bare beregnet på en anden måde.
Den solgte mængde blev beregnet ved hjælp af rækkekontekst , mens den samlede solgte mængde blev beregnet ved hjælp af filterkontekst .
Beregning af solgt mængde iteration ved hjælp af rækkekontekst
Lad os nu gennemgå trin for trin, hvordan mængden solgt iteration beregnes. Først skal du huske at forlade den indledende værdiansættelseskontekst, som er produkt 1 i dette tilfælde. Og så via rækkekontekst itererer vi gennem hver enkelt række i tabellen, som vi angiver.
I dette tilfælde angiver vi salgstabellen, og så går vi og ser på hver enkelt række i kolonnen Antal.
Under den indledende evaluering vil produkt 1 blive bestemt af, hvad der er filtreret i produkt-id-kolonnen. Og så tæller den rækkerne op under kolonnen Antal. Hver gang den rammer en række går den ind og gemmer resultatet i hukommelsen.
Efter at den har nået bunden af tabellen, går den så hen og laver en evaluering af alle de resultater, der er gemt i hukommelsen, og så vil den lave den udregning, du beder om den, som i dette tilfælde er SUMX .
Hvorfor bruge en rækkekontekst eller en itererende funktion?
Dette skyldes, at du inde i en itererende funktion kan gøre langt mere komplekse ting. Du kan skrive noget meget avanceret logik indeni.
For hver række i salgstabellen ganges mængden for eksempel med 2. Du vil nu se, at den samme beregningsproces finder sted, men vi får forskellige resultater.
Dette skyldes, at vi for hver enkelt række skriver en anden logik. Efter at have gennemgået hver enkelt række i mængdekolonnen, gange vi værdien med to, og så bliver den gemt i hukommelsen. Til sidst laver vi en SUM .
Vi kan også skrive forskellige ting her, herunder avanceret logik som f.eksellerlogik.
Der er dynger og dynger af eksempler på, hvor det ville være bedre at bruge en itererende funktion eller rækkekontekst til at lave en beregning frem for en aggregeringsfunktion eller filterkontekst .
Nøglenoter til at forstå sammenhænge i LuckyTemplates
For at opsummere alle de vigtigste ting om kontekst, husk, at beregning i DAX fungerer via en to-trins proces. Det første skridt er altid evalueringskonteksten . Det betyder så meget, hvad evalueringskonteksten er .
Når du forstår, hvad evalueringskonteksten er for ethvert individuelt resultat, forgrener DAX sig derefter på to forskellige måder. Det kan enten beregne via filterkontekst eller via rækkekontekst.
At vælge hvilken kontekst der skal bruges afhænger af hvilken formel du skriver. Så hvis du skriver en simpel aggregeringsformel , vil den så gå hen og beregne den via filterkontekst . Men hvis du skriver en itererende funktion som SUMX, så vil den beregne formlen via rækkekontekst .
Når du først er blevet lidt mere avanceret i DAX, kan du faktisk have flere sammenhænge i den samme funktion. Men før du når dertil, skal du virkelig forstå, hvad kontekst er i sin enkleste form.
Konklusion
At forstå typerne af kontekst er helt afgørende, da du lærer DAX og ønsker at udføre mere avanceret arbejde. Når du begynder at skrive en virkelig avanceret DAX-formel, har du flere sammenhænge, der arbejder på samme tid, og du skal forstå, hvad hver enkelt del af den formel gør for at opnå de ønskede resultater.
Her er nogle anbefalede links, så du kan lære mere om anvendelsen af rækkekontekst inde i LuckyTemplates:
Evalueringskontekst – (1.8) Ultimativ begyndervejledning til DAX
Filterkontekst – (1.9) Ultimativ begynderguide til DAX
Nyd at arbejde igennem denne.
Denne vejledning giver et overblik over Power Query Editor og M-sproget inde på LuckyTemplates-skrivebordet.
Lær, hvordan du opretter en sideinddelt rapport, tilføjer tekster og billeder og derefter eksporterer din rapport til forskellige dokumentformater.
Lær, hvordan du bruger SharePoint-automatiseringsfunktionen til at skabe arbejdsgange og hjælpe dig med at mikrostyre SharePoint-brugere, -biblioteker og -lister.
Udvid dine rapportudviklingsevner ved at deltage i en dataanalyseudfordring. Acceleratoren kan hjælpe dig med at blive LuckyTemplates-superbruger!
Lær, hvordan du beregner løbende totaler i LuckyTemplates ved hjælp af DAX. Løbende totaler giver dig mulighed for ikke at blive fanget af et individuelt resultat.
Forstå konceptet med variabler i DAX i LuckyTemplates og betydningen af variabler for, hvordan dine mål beregnes.
Lær mere om det brugerdefinerede visuelle kaldet LuckyTemplates Slope-diagrammet, som bruges til at vise stigning/fald for en enkelt eller flere metrics.
Opdag farvetemaerne i LuckyTemplates. Disse er afgørende for, at dine rapporter og visualiseringer kan se ud og fungere problemfrit.
Beregning af et gennemsnit i LuckyTemplates kan gøres på mange måder for at give dig præcise oplysninger til dine virksomhedsrapporter.
Lad os dykke ned i Standard LuckyTemplates-temaer og gennemgå nogle af de funktioner, der er indbygget i selve LuckyTemplates Desktop-applikationen.