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 vil bruge lidt tid i dag på at gennemgå et spørgsmål fra LuckyTemplates' medlem, Lucas, om bordvisualiseringer i LuckyTemplates. Det er et interessant spørgsmål i sig selv, men jeg vil gerne dissekere det, fordi det også berører en masse andre interessante emner, inklusive afbrudte tabeller, udsnitsindsamling og nogle visualiseringstricks for udsnitsværktøjer, betinget formatering og virtuelle tabeller. Du kan se den fulde video af denne tutorial nederst på denne blog.
Der er meget samlet i dette, selvom det umiddelbart ikke er et særligt komplekst spørgsmål. Lucas havde en tabel, og baseret på værdien af sliceren (i dette tilfælde 1. maj) vil han tage hver post, der er mindre end eller lig med slicer-værdien i Date In , og hver post, der er større end sliceren værdi i Dato Out , og reducere tabellen kun til disse poster.
Før vi gør det, lad os tage et hurtigt kig på vores datamodel – det er ret simpelt. Vi har stort set lige fået den udvidede datotabel, der er knyttet til vores faktatabel, blot gennem det aktive forhold mellem Dato og Date In og det inaktive forhold mellem Date og Date Out. Og så har vi lige fået vores måltabel. Så som du kan se, er det en ganske simpel datamodel, vi arbejder med i dag.
Vi starter med at skære de data, han talte om. Vi tager bare vores Dato-felt og gør det til en udskærer. Vi vil have en enkelt værdi, så vi gør det for nu til en liste. Det er ikke en god brugeroplevelse, fordi vi skal lede listen igennem til 1. maj, men vi kommer ind på det om et øjeblik.
Så vi scroller ned i sliceren og finder den 1. maj, vælg den, og nu ser vi nogle problemer med det lige fra starten. Det er et stumpt instrument, og vi har fået en mere raffineret tilstand, som vi forsøger at nå. Det tager stort set alt ud, der ikke er Date In 1. maj, hvilket ikke er det, vi ønsker.
Og det filtrerer de to billeder nedenfor på en måde, der ikke er særlig nyttig.
Vi kan med det samme se, at en direkte skæremaskine ikke vil fungere for os. Så det, vi ønsker i stedet, er et afbrudt bord. Det er en fantastisk teknik at bruge, når du ønsker at høste værdien ud af det, der ligner en slicer for brugeren, men som faktisk ikke interagerer med dine visuelle elementer, og du trækker bare denne værdi ind i din DAX og derefter bruger den til at manipulere dine beregninger i dine billeder.
Indholdsfortegnelse
Oprettelse af en afbrudt tabel (beregnet tabel i DAX)
Så lad os slippe af med denne ubrugelige slicer, og vi laver en afbrudt tabel . For at oprette en afbrudt tabel kan du gøre det enten som en fysisk tabel i Power Query eller som en beregnet tabel i DAX. Og jeg tror, at den optimale måde at gøre dette på ville være som et fysisk bord.
Men for dette eksempel vil jeg bare oprette det som en , bare ved at gå til modelleringsbåndet og derefter til Ny tabel .
Vi vil brugefunktion i DAX. Så vores afbrudte datotabel vil svare til værdierne af datoen fra vores datotabel. Det vil bare skabe en en-kolonne beregnet tabel.
Og så kan vi trække den værdi ind som vores skæremaskine.
I stedet for en liste har vi en enkelt værdiskærer, men desværre er der ikke noget lignende i de almindelige valg. Den eneste måde at få en enkelt værdiskyder på er fra Generate Series , og det er ikke noget, vi kan gøre med datoer. Det vi kan gøre er efter .
Efter giver os, hvad der ligner en enkelt værdiskyder, men den giver os alt fra datoen for skyderen og alle datoerne efter det. Nu er en af de vanskelige ting ved en After-skærer, hvordan du høster den. Så lad os lave et høstmål.
Høstmål for en tabelvisuel i LuckyTemplates
Lad os kalde det Harvest . Det typiske høstmål er baseret på. Og så vælger vi værdien af vores Disconnected Date- felt.
Det producerer ikke en fejl, men hvis vi går og slipper det på et kort, viser det tomt.
Grunden til det er, at SELECTEDVALUE skal returnere en enkelt værdi, og After-sliceren returnerer flere værdier. Den returnerer alt fra startdatoen helt til slutningen af skæremaskinen. Fordi det ikke returnerer en enkelt værdi, vil det høste dette som Blank . Så vi er nødt til at tage det og ændre den foranstaltning.
Vi vil brugefunktion og tag derefter minimum () værdien af vores afbrudte datotabel. Og nu er den "ændring i kontekst", som vi vil ønske, dybest set. Det er minimum af alt, der er valgt i After-sliceren. Så vi tager det, og vi går til vores afbrudte datofelt igen.
Nu får vi præcis, hvad vi ønsker, som er den enkelte værdi ud af Harvest.
Og vi har en god brugeroplevelse, fordi vi ikke kun kan glide, vi kan gå herop og drage fordel af denne datovælger. Vi kan bare vælge den dato, vi ønsker (f.eks. 1. maj) lige på datovælgeren, og den vises som en enkelt værdi.
Dernæst skal vi oprette et mål, der skal bruge den høstede værdi til at filtrere vores tabel. Vi kalder dette mål for Inden for rækkevidde . Vi bruger en variabel her ( VAR Cond ), og derefter ensætning, hvor vi bruger SELECTEDVALUE omkring Dato In og Date Out . Så vil vi have 1 , hvis betingelsen er sand, og 0, hvis den er falsk. Til sidst returnerer vi tilstand (Cond) nederst.
Nu har vi fået en foranstaltning, der gør præcis, hvad vi ønsker. Den returnerer bare én, hvis den er inden for området og nul, hvis den ikke er det. Vi kan nu gå til filterruden, vælge dette tabelvisual og tage vores Inden for rækkevidde-mål og slippe det i filterruden. Vi indstiller det bare, når værdien er én, det viser elementerne. Vi trykker på Anvend filter , og vi kan se, at det giver os de rigtige resultater, C, D og E.
Betinget formatering på en tabel Visual i LuckyTemplates
Det filtrerer ikke de andre tabelvisuals, men vi kan udnytte dette mål endnu en smule længere ved at bruge . Lad os lave betinget formatering på regler og basere det på vores Inden for rækkevidde -mål. Derefter sætter vi en regel og vælger en farve.
Med det kan vi se, at tabellens visuelle (søjlediagram) nedenfor ændrede sig dynamisk.
Vi kan gøre det samme med vores punktdiagram. Vi går bare til datafarver, og igen går vi til standardfarven og opsætter den samme regelstruktur, som vi opsætter for vores søjlediagram. Og nu har vi fået en fuldstændig dynamisk struktur her.
Når vi glider vores slicer rundt, ændrer den alt det visuelle på præcis den måde, som Lucas havde ønsket i forhold til at filtrere tabellen ned til de korrekte værdier.
Konklusion
I denne blog har jeg vist dig, hvordan du dynamisk undersætter en tabelvisuel i LuckyTemplates. Du har lært, hvordan du opretter det korrekte DAX-mål for at høste en værdi og bruge betinget formatering for at få fuldstændig dynamiske tabelvisuals.
Jeg håber, du får nogle nyttige tips med på vejen. Tjek nedenstående links for mere relateret indhold.
Skål!
Brian
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.