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.
Denne vejledning vil diskutere, hvordan du vælger eller filtrerer en bestemt dato i din . Materialet, der bruges i denne øvelse, kommer fra . Du lærer, hvordan du løser problemet og forstår de anvendte metoder. Du kan se den fulde video af denne tutorial nederst på denne blog.
Indholdsfortegnelse
Forstå datarapporten i LuckyTemplates
Dette er eksempeldatarapporten, der vil blive brugt. Den består af en bordvisuel og to skæremaskiner.
Målet er at have et datovalg over kolonnen Dato på udskæreren. Det betyder, at når en dato i sliceren er valgt, vil tabelvisualiseringen vise de foregående dage med et 7-dages interval. I dette eksempel er de data, der er valgt i datoudsnitteren 12. maj 2007.
Tabellen skal vise det foregående med en 7-dages forskel mellem datoerne.
Du skal også oprette en hvad hvis-parameter for dynamisk at vise antallet af datoer baseret på valget. Hvis du vælger 3 , skal den visuelle tabel kun vise 3 datoer.
Genskabelse af tabellen og visualiseringer
Det første trin er at oprette en hvad hvis-parameter . Inde på LuckyTemplates-skrivebordet skal du gå til fanen Modellering og vælge Ny parameter .
Tilføj et navn til parameteren, og indstil datatypen til hele tal . Indstil derefter minimum-, maksimum-, stignings- og standardværdierne som vist på billedet nedenfor. Tilføj sliceren til siden ved at markere afkrydsningsfeltet.
Når du har trykket på OK, genereres en udsnitsmaskine. Konverter sliceren til en liste ved at klikke på rullemenuen og vælge Liste.
Den næste ting at gøre er at oprette en duplikeret datotabel, som vil blive brugt som en afbrudt datotabel. Gå til Power-forespørgselseditoren og dupliker Datoer .
Derefter skal du omdøbe den dublet DisDate og klikke på Luk & Anvend.
Indlæser datotabellerne og udskærerne i LuckyTemplates
Når den duplikerede tabel er indlæst i LuckyTemplates-modellen, skal du oprette en slicer med datokolonnen fra den afbrudte datotabel. Åbn DisDate-tabellen, og træk Date til lærredet.
Gør derefter visualiseringen til en udskærer.
Skift derefter formatet på udsnitsværktøjet til Liste . Visualiseringen vil så se således ud.
Dupliker derefter udsnitsværktøjet og skift datafeltet med kolonnen Dato fra tabellen Datoer.
Hvis du vælger en dato fra Dates slicer, begrænses salgstabellens antal af synlige rækker i matrixen. Hvis du vælger 14. marts 2005, vil matricen kun vise denne dato.
Resultatet og målingen virker ikke, hvis du bruger denne opsætning. Årsagen er, at selv før foranstaltningen begynder at virke, er adgangen til matrixen allerede blevet filtreret. For disse filtrerede værdier vil du ikke være i stand til at generere datoerne med intervaller.
Oprettelse af mål til udvalgsskærerne
Du skal oprette en opsætning af datoer, der ikke filtrerer matrixen direkte, når en markering placeres over en udsnitsmaskine. Filtreringen af matrixen skal komme gennem og ikke direkte fra udskærerne. Så hvis du vælger en dato fra DisDate slicer, sker der ingen ændringer i matrixen.
Dette sker, fordi DisDate-tabellen ikke har en relation til Dates-tabellen. Derfor er det afbrudte bord vigtigt.
Slet udskæringen med Datoer-tabellen og opret den første takt. Målingen vil hente den værdi, der er valgt fra Dates To Show sliceren. Den første variabel, du skal oprette, er ValuesToShow . Dernæst sidestilles det med Dates To Show-værdien og indtaste RETURN for at returnere de valgte værdier.
Træk det mål ind i matrixen. Hvis du vælger 6 fra Dates To Show sliceren, vil kolonnen Mål i matrixen også give 6.
Dernæst skal du oprette en anden variabel, der vil hente den afbrudte dato, der er valgt i udsnitsværktøjet.
Når du er færdig, vil du se den valgte værdi i DisDate sliceren vist i kolonnen Mål.
Oprettelse af en beregnet tabel
Opret en liste over datoer med 7-dages intervaller startende fra den valgte dato i sliceren. Sørg derefter for, at matrixen vil generere antallet af dage baseret på Datoer, der skal vises slicer-valget. For at gøre dette skal du først oprette en .
Den beregnede tabel hjælper dig med at visualisere, hvordan datoer genereres inde i DAX-koden. Gå til datavisningen, og klik på Ny tabel.
Indtast variablen SelectedDate og sidestil den med DATE -funktionen. Indtast derefter en dato i parentesen. Derefter skal du oprette en anden variabel, der angiver antallet af datoer, du vil vise i matrixen. Indtast DatesToShow og sidestil det med antallet af datoer.
Derefter skal du oprette en anden variabel, der genererer en liste over datoer med 7-dages intervaller. Indtast datoliste og brug funktionen GENERATESERIES . er en funktion, der genererer en liste over tal ved at indsætte flere argumenter.
For det første argument skal du indtaste SelectedDate – (DatesToShow * 7) som startværdien. Indtast derefter SelectedDate som slutværdien. For det sidste argument skal du indtaste 7 for stigningsværdien eller intervallet mellem datoer. Når du er færdig, skal du lukke funktionen og indtaste RETURN og DateList .
Du kan derefter se en tabel, der indeholder syv værdier, der starter fra den 5. maj og går tilbage med trin på syv.
Nu vil du bemærke, at det skabte for mange datoer, end du har brug for. I den oprindelige eksempelrapport var den sidste dato vist med de samme Datoer, der skal vises og Datovalg, den 31. marts.
For at rette op på det kan du enten ændre DatesToShow-variablens værdi til 5 eller trække 1 fra 6. I dette eksempel trækkes 1 fra 6.
Derefter vil du se, at værdierne slutter den 31. marts.
Injektion af datoer i filterkonteksten
Dernæst skal du bruge og indsætte disse datoer i en datofilterkontekst. Du skal også beregne salgsbeløbet i filterkonteksten. Så kopier GENERATESERIES- syntaksen og gå tilbage til dit mål.
Tilføj en ny variabel i målingen og indtast DatesToShow . Sæt derefter lighedstegn mellem den variabel og GENERATESERIES -syntaksen. Skift variablerne inde i syntaksen fra SelectedDate til DisSelectedDate og DatesToShow til ValuesToShow .
Til sidst skal du oprette en variabel for resultatet. Sæt lighedstegn mellem det med funktionen CALCULATE over Total Sales og DatesToShow for at indsætte alle de datoer, der er modtaget fra GENERATESERIES- syntaksen, i filterkonteksten. Når du er færdig, indtast Resultat i RETURN- funktionen.
Nu vil du se, at matrixen ikke viser de datoer, som DAX-koden anmoder om. Hvis du bringer det samlede salgsmål i matrixen, vil du se, at koden returnerer selve salgsbeløbet.
Problemet med målingen er, at den dato, der blev oprettet i GENERATESERIES- syntaksen, har en datalinje med den afbrudte datotabel. Det betyder, at Dato-tabellen ikke er forbundet med Sales-tabellen. Det er derfor, da listen over datoer blev anvendt i filterkonteksten, inkluderede den ikke Salgstabellen.
Du skal bruge funktionen til at skabe virtuelle relationer og anvende filterkonteksten.
Brug af TREATAS til at rette datoen i LuckyTemplates Matrix
Du skal behandle de værdier, der blev modtaget fra GENERATESERIES- syntaksen, som om de var en del af den originale Dato-tabel. Dette er dybest set at bygge en afstamning med Dato-kolonnen i Dato-tabellen, der er i datamodellen.
Så i resultatvariablen skal du indtaste TREATAS efter tabellen Samlet salg og angive argumenterne. For det første argument skal du angive den kolonne eller tabel, der ikke har relationen. I dette tilfælde bruges DatesToShow- kolonnen.
For det andet argument skal du angive den kolonne, som du vil tilknytte kolonnens linje i det første argument til. I dette eksempel bruges kolonnen Dato fra tabellen Datoer.
Men selv med rettelserne i koden, vil kolonnen Mål i matrixen stadig ikke vise de korrekte værdier, når du bruger udskæreren. Du kan også bemærke, at værdierne inde i kolonnen gentages.
Problemet ligger i måden koden blev skrevet på. TREATAS anvender alle værdier i filterkonteksten ogtilsidesætter den eksisterende filterkontekst på den valgte dato med alle de værdier, der er blevet hentet fra funktionen GENERATESERIES .
Brug af KEEPFILTERS-funktionen over TREATAS
For at sikre, at filteret sprøjtes ind i filteret uden at tilsidesætte den eksisterende filterkontekst, skal du bruge KEEPFILTERS- funktionen. ændrer CALCULATEs filtreringssemantik.
Indtast KEEPFILTERS før TREATAS -funktionen og bekræft målingen.
Du vil nu se, at værdierne i kolonnen Mål ikke gentages.
Hvis du udvider månederne maj og april, vil du se, at værdierne i kolonnen Mål er lig med værdierne i kolonnen Samlet salg.
Fjern målet for det samlede salg i matrixen, og vælg et tal i udsnittet Datoer, der skal vises. Du vil derefter se det tilsvarende antal datoer, der vises i matrixen.
Løsning af manglende datoproblemer i LuckyTemplates Matrix
Et andet problem med denne rapport er, at når du vælger 8 i DatesToShow- sliceren, ændres matrixen ikke.
Hvis du vælger 9 i sliceren, viser matrixen kun 8 datoer. Du vil også bemærke, at den 17. marts mangler på listen over datoer.
Årsagen er, at der på nogle dage i tabellen Dato ikke er matchende transaktioner i tabellen Salg. Så målingen returnerer en blank for disse datoer. Da den returnerer blank, fjerner koden, der kører bag matrixen, de tomme rækker fra resultatet.
LuckyTemplates bruger derefter det returnerede resultat til at udfylde matrixen. Så da nogle dage returnerer tomme, kan du ikke se Salg og poster for disse dage i matrixen.
Hvis du vil vise noget for dagene uden salg i dine data, skal du gå tilbage til målingen og fjerne CALCUATE -syntaksen.
Brug af DAX til at løse manglende dato i LuckyTemplates
Opret en datalinje ved at skrive TREATAS over DatesToShow- og Dato- kolonnen i Dates- tabellen. Kontroller derefter, om alle de datoer, der returneres af TREATAS- funktionen, er inkluderet i filterkonteksten.
Derfra opdeles eksekveringen med flere variabler. Skift variabelnavnet fra Resultat til CreateDataLineage for at vise, at det gemmer resultatet af TREATAS .
Opret derefter en anden variabel, der vil indeholde alle de datoer, der er synlige i filterkonteksten, der kommer fra matrixen. Indtast VisibleDate som variabelnavnet, og brug den over kolonnen Dato .
Den næste ting at gøre er at oprette en kolonne over resultatet af TREATAS -funktionen, der ville indeholde salgsbeløbet. Skriv DatesWithSales som variabelnavnet og brug over CreateDataLineage- variablen.
Inde i funktionen skal du oprette en ny kolonne og navngive den Salgssum med målingen Total Sales i rækkekonteksten for at starte kontekstovergangen.
Derefter skal du oprette en variabel, der kontrollerer, om alle de datoer, der er gemt i DatesWithSales -variablen, er inkluderet i filterkonteksten. Indtast IsDateInFilterContext som variabelnavnet, og brug funktionen.
Derfra skal du skrive DatesWithSales som det første argument for funktionen. Indtast derefter Dates[Dato] IN VisibleDate som det andet argument for at kontrollere, om datoen indeholdt i DatesWithSales- tabellen er inkluderet i VisibleDate- variablen.
Den sidste variabel, du skal oprette, er Resultat . Brug funktionen over variablen IsDateInFilterContext . Skriv [@Salgsbeløb] + 0 for at inkludere de dage, der ikke tidligere var inkluderet.
Efter alt det, vil du så se den manglende dato, 17. marts, i matrixen.
Brug af +0 i det oprindelige mål
De foregående trin viste dig, hvordan du opbygger et mål for at inkludere alle de datoer, der ikke har transaktioner i faktatabellen. Nu, hvis du bruger + 0 i det oprindelige mål, du oprettede, vil værdierne i kolonnen Mål alle være 0.
Årsagen er, at resultatvariablen indeholder enten et tomt beløb eller et salgsbeløb. Så hvis du tilføjer 0, erstatter du det tomme med 0. Husk, at opsummerede kolonner fjerner de tomme rækker fra datasættet. Returner dem til LuckyTemplates, så de kun kan vise begrænsede rækker og ikke de tomme felter.
Men da 0 er tilføjet, er opsummeringskolonnen tvunget til at beholde rækkerne. Det returnerer derefter en tabel, der indeholder alle de datoer, der findes i Datoer-tabellen og viser nul, hvor det er relevant, eller når det er tomt.
Dette er grunden til, at du skal omskrive målingen på en måde, hvor du kun skal tilføje 0 til de datoer, der er synlige i filterkonteksten og er inkluderet i DatesToShow- variablen .
Konklusion
For at oprette en datarapport, der lader dig vælge en bestemt dato i en , skal du bruge beregnede tabeller og. DAX funktioner og mål skal skrives på en måde, der nemt kan opnå resultater.
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.