Vad är Power Query & M Language: En detaljerad översikt
Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.
Jag har upptäckt att de flesta människor blir förvirrade när det gäller att förstå hur DAX fungerar i radsammanhang . Detta beror på att radkontext kan vara ganska komplicerat och i onödan. Så vi kommer att beröra radkontext genom hela den här artikeln. Du kan se hela videon av denna handledning längst ner på den här bloggen.
Sättet jag tänker på radkontext är genom iterationer eller itererande funktioner . Så fort jag gjorde den distinktionen i mitt sinne, var det mer vettigt i termer av vad som faktiskt pågick i beräkningsmotorn.
Som en sammanfattning har vi diskuterat att det finns tre typer av sammanhang: utvärderingskontexten , filterkontexten och radkontexten .
Alla DAX-beräkningar fungerar i en tvåstegsprocess. Utvärderingskontexten går alltid först och sedan förgrenas den ut i antingen filterkontext eller radkontext beroende på vilken funktion du skriver .
Innehållsförteckning
Förstå radkontext
Radkontext handlar om iterering.
Jag ska visa dig ett par exempel och förhoppningsvis kommer detta att hjälpa dig att förstå vad radkontext faktiskt gör i backend.
Radkontext vs filterkontext
I vårt exempel beräknas formeln viaeftersom det är en enkel sammanställning. Den summerar hela kolumnen Kvantitet efter att alla initiala filter har satts på plats.
Det initiala filtret i försäljningstabellen är produkt 1. Genom att summera varje kvantitet som har sålts får vi 165.
Nu ska jag visa dig hur du får exakt samma resultat, men beräknat på ett helt annat sätt. Först ska jag skapa ett nytt mått för kvantitetssåld iteration med hjälp av en itererande formel.
Exempel på itererande funktioner inkluderar SUMX ,, MANYX och COUNTX . I det här fallet kommer vi att använda SUMX .
SUMX - funktionen har bett mig att lägga in en tabell, så jag ska lägga in tabellen Försäljning. Och så bad den mig om ett uttryck så jag satte bara i kolumnen Antal.
Denna funktion skiljer sig ganska mycket från den första funktionen, men jag får exakt samma resultat när jag drar in den.
Vi får exakt samma resultat här eftersom det i slutändan är samma beräkning. Det var bara beräknat på ett annat sätt.
Iterationen för såld kvantitet beräknades med hjälp av radkontext , medan den totala sålda kvantiteten beräknades med filterkontext .
Beräknar kvantitet såld iteration med hjälp av radkontext
Låt oss nu gå igenom steg för steg hur kvantitet såld iteration beräknas. Först måste du komma ihåg att lämna den initiala värderingskontexten, som är produkt 1 i det här fallet. Och sedan via radkontext , itererar vi genom varje enskild rad i tabellen som vi anger.
I det här fallet anger vi tabellen Försäljning och sedan går vi och tittar på varje enskild rad i kolumnen Kvantitet.
Under den första utvärderingen kommer produkt 1 att bestämmas av vad som än filtreras i kolumnen Produkt-ID. Och sedan räknar den upp raderna under kolumnen Kvantitet. Varje gång den träffar en rad går den in och sparar resultatet i minnet.
Efter att den når botten av tabellen, går den sedan och gör en utvärdering av alla resultat som sparats i minnet, och sedan kommer den att göra vilken beräkning du än ber om den, som i det här fallet är SUMX .
Varför använda en radkontext eller en itererande funktion?
Detta beror på att inuti en itererande funktion kan du göra mycket mer komplexa saker. Du kan skriva mycket avancerad logik inuti.
Till exempel, för varje rad i tabellen Försäljning, multipliceras kvantiteten med 2. Du ser nu att samma beräkningsprocess sker, men vi får olika resultat.
Detta beror på att vi skriver olika logik för varje enskild rad. Efter att ha gått igenom varje enskild rad i kvantitetskolumnen multiplicerar vi värdet med två, och sedan sparas det i minnet. I slutet av det gör vi en SUMMA .
Vi kan också skriva olika saker här inklusive avancerad logik som t.exellerlogik.
Det finns heaps och heaps av exempel på var det skulle vara bättre att använda en itererande funktion eller radkontext för att göra en beräkning snarare än en aggregeringsfunktion eller filterkontext .
Viktiga anmärkningar för att förstå sammanhang i LuckyTemplates
För att sammanfatta alla viktiga saker om sammanhang, kom ihåg att beräkning i DAX fungerar via en tvåstegsprocess. Det första steget är alltid utvärderingssammanhanget . Det spelar så stor roll vad utvärderingssammanhanget är.
När du väl förstår vad utvärderingskontexten är för ett individuellt resultat, förgrenas DAX sedan ut på två olika sätt. Den kan antingen beräkna via filterkontext eller via radkontext.
Att välja vilket sammanhang som ska användas beror på vilken formel du skriver. Så om du skriver en enkel aggregeringsformel kommer den att gå och beräkna den via filterkontext . Men om du skriver en itererande funktion som SUMX, kommer den att beräkna formeln via radkontext .
När du väl blivit lite mer avancerad i DAX kan du faktiskt ha flera sammanhang i samma funktion. Men innan du kommer dit måste du verkligen förstå vad sammanhanget är i sin enklaste form.
Slutsats
Att förstå typerna av sammanhang är helt avgörande eftersom du lär dig DAX och vill göra mer avancerat arbete. När du börjar skriva en riktigt avancerad DAX-formel har du flera sammanhang som arbetar samtidigt och du måste förstå vad varje enskild del av den formeln gör för att uppnå dina önskade resultat.
Här är några rekommenderade länkar för dig att lära dig mer om tillämpningen av radkontext inuti LuckyTemplates:
Utvärderingskontext – (1.8) Ultimate Beginners Guide to DAX
Filterkontext – (1.9) Ultimate Beginners Guide to DAX
Njut av att arbeta igenom den här.
Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.
Lär dig hur du skapar en sidnumrerad rapport, lägger till texter och bilder och sedan exporterar din rapport till olika dokumentformat.
Lär dig hur du använder SharePoint-automatiseringsfunktionen för att skapa arbetsflöden och hjälpa dig att mikrohantera SharePoint-användare, bibliotek och listor.
Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!
Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.
Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.
Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.
Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.
Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.
Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.