Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion
Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.
Lad os se igen på problemet diskuteret i , som dynamisk sammenlignede de første N hverdage i hver måned. Dette problem var baseret på en forespørgsel fra et LuckyTemplates-medlem på vores forum, hvor han ønskede dynamisk at se og sammenligne de første 5, 10, 15 og 20 fakturerbare dage (de ikke-weekender og ikke-helligdage) for en given måned med den foregående måned.
I stedet for at bruge power-forespørgsel, kommer vi med en DAX-kodningssprogsløsning. Du kan se den fulde video af denne tutorial nederst på denne blog.
I den første video kom jeg med en strømforespørgselsløsning om, hvordan man løser dette problem. Men så kom en af vores LuckyTemplates-eksperter, Antriksh Sharma, op med en strålende effektiv foranstaltning, som også er værd at tage et dybere dyk ned i. Vi vil diskutere nogle af de teknikker, han brugte til at udvikle et mål, som vil give dig yderligere værktøjer i din DAX-værktøjskasse.
Det gjorde det bestemt for mig og for nogle af de andre eksperter, der kiggede på dette. Sammenligningen af sammenlignelige hverdage på tværs af måneder er et værdifuldt mønster generelt, som kan bruges i mange situationer.
Lad os dykke ned i strømforespørgsler og se på, hvad Antriksh gjorde her. Vi har måneden og året , det samlede salg og til sidst det samlede salg for N arbejdsdage , som vi valgte ved hjælp af power-forespørgsel baseret på what-if-parameteren, som vi udviklede.
Antriksh tog en helt anden tilgang, hvor han brugte en chokerende kort foranstaltning til at løse hele dette problem. Det første, jeg lagde mærke til ved dette, var brugen af kommandoen.
Dette er en DAX-funktion, som jeg ikke bruger særlig tit, men som passer perfekt til denne type problemer. Hvis vi tager et kig på SQL BI DAX-vejledningen, står der, at GENERATE-funktionen er en tabelfunktion, der bruger to forskellige tabeller som input, og derefter udfører en ækvivalent af SQL-kommandoen CROSS APPLY.
Så det tager en basistabel (Tabel1) og gentager den, og tager derefter et andet tabeludtryk og evaluerer det for hver række i den første tabel og vender derefter tilbage til tabellen som output.
Lad os tage Antrikshs mål og slippe det i bordet. Vi kan se, at det giver nøjagtig de samme resultater som strømforespørgselsløsningen, som vi lavede sidste gang. Så det er godt og validerer begge mål ganske godt.
Lad os skille denne foranstaltning fra hinanden. Det første filter, der anvendes her, er Dates[IsBusinessDay] = TRUE. Dette fjerner alle ikke-weekend- og ikke-helligdage baseret på den udvidede datotabel IsBusinessDay-feltet.
Vi taler meget mere om dette i , hvor vi også gennemgik, hvordan man binder det ind på vores feriebord.
Den interessante del af dette kommer virkelig i de to tabelinput. Den første tabel er kun en tabel med én kolonne i feltet Måned og år i datotabellen.
Men det andet tabelinput er, hvor de interessante ting sker. Antriksh brugte a og brugte derefter vores dynamiske parameter som antallet af rækker i TOPN.
Målingen Samlet salg er knyttet til den anden tabel og derefter anvendt på den første tabel.
Indholdsfortegnelse
Forståelse af en kompleks foranstaltning ved hjælp af DAX-kodningssprog
En af de nemmeste måder at finde ud af, hvad en kompleks foranstaltning som denne gør, er at gå ind i tabeleditor . Vi kan tage et kig på dette udtryk og finde ud af, hvad dette TOPN-udtryk gør først.
Lad os kopiere TOPN-delen og oprette en ny. Husk, at DAX-forespørgsler starter med EVALUATE.
Når vi indsætter TOPN-delen, vil vi se, at dette trækker de første 5 datoer fra salgsordretabellen. Der er en tabel i TOPN, der er sammensat af værdierne for alle ordredatoer i salgstabellen.
Denne TOPN-funktion tager værdien af what-if-parameteren (som i dette tilfælde er 5) og anvender den på salgsordresdatofeltet. Så trækker den de første 5 datoer i filterkonteksten i stigende rækkefølge baseret på det felt.
Da der ikke er nogen ekstra filterkontekst, trækker det bare de første 5 datoer fra hele tabellen.
Kolonnen @Sales tilføjer bare det samlede salg inden for den korrekte filterkontekst til TOPN-tabellen.
Indtil videre har vi den første tabel for måneden og året, den anden tabel over TOPN af de første N stammer fra salgstabellen og derefter det samlede salg forbundet med det.
Brug af GENERATE-tabellen i DAX-kodningssprog
Lad os tage et kig på, hvad denne GENERATE-tabel gør. Vi hopper tilbage til Tabular Editor og opretter en ny DAX-forespørgsel.
Vi starter som vi altid gør med EVALUATE, indsæt GENERATE-delen af koden og klik på 5.
Vi kan se, at for hver række i den første tabel, gentages og forbindes med de 5 rækker fra TOPN-tabellen, der er evalueret i sammenhæng med @Sales-funktionen.
Det har taget de første 5 hverdage i april, de første 5 hverdage i maj, de første 5 hverdage i juni og så videre, indtil det kommer til slutningen af den første tabel.
Det er præcis, hvad vi har brug for, og nu bliver det et relativt simpelt spørgsmål om at lægge disse værdier sammen. Vi har resultatet (som er tabelvariablen for GENERATE-resultaterne), og så skal vi opsummere @Sales-funktionen.
Inden for kontekst opsummerer vi nu de første 5 hverdage i april, de første 5 hverdage i maj osv., indtil vi kommer ned på vores samlede beløb på 23.737.430 USD, i hvilket tilfælde det ikke har nogen kontekst for måned og år at fungere .
Dette opsummerer hele kolonnen @Sales og giver os den nøjagtige samme total, som vi havde i vores power-forespørgselsløsning.
Du kan se, at hvis vi ændrer sliceren til 10, får vi dynamisk de samme resultater med DAX-kodningssprog, som vi gjorde i power-forespørgsel.
Vi har også søjlediagrammet i bunden, der justerer dynamisk for at afspejle de ændringer, vi har foretaget.
Juster dynamisk måltitel
Der er endnu et trick, jeg ville vise dig. Du kan oprette en dynamisk justering på din what-if-parameter og binde den dynamisk til en måltitel.
For eksempel, hvis vi ændrer udsnitsværktøjet øverst til 15, vil det dynamisk ændre navnet på målingen nederst til Samlet salg for de første 15 hverdage i hver måned .
Der er en nem måde at gøre dette på i DAX ved hjælp af . Vi tager stort set bare tre strenge. Den første er Total Sales for First , og derefter sammenkæde det med værdien, som vi høster fra what-if-parameteren, og så bare binde det til resten af titlen.
Så går vi ind i det visuelle, går til betinget formatering af titlen og klikker på fx .
Vi formaterer efter feltværdi og vælger det dynamiske titelmål. Dette vil ændre valget af hvad-hvis-parameteren.
Konklusion
Det, vi har nu, er en komplet løsning, der bruger DAX-kodningssprog. Vi har diskuteret en virkelig kreativ og effektiv måde at gøre det på ved hjælp af GENERATE-funktionen. Jeg vil gerne takke Antriksh for at dele hans strålende DAX-viden med os. Jeg lærte meget, mens jeg gennemgik hans DAX-løsning, og det håber jeg, at du også gjorde.
Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.
Find ud af, hvorfor det er vigtigt at have en dedikeret datotabel i LuckyTemplates, og lær den hurtigste og mest effektive måde at gøre det på.
Denne korte vejledning fremhæver LuckyTemplates mobilrapporteringsfunktion. Jeg vil vise dig, hvordan du kan udvikle rapporter effektivt til mobilenheder.
I denne LuckyTemplates Showcase gennemgår vi rapporter, der viser professionel serviceanalyse fra et firma, der har flere kontrakter og kundeengagementer.
Gå gennem de vigtigste opdateringer til Power Apps og Power Automate og deres fordele og implikationer for Microsoft Power Platform.
Opdag nogle almindelige SQL-funktioner, som vi kan bruge, såsom streng, dato og nogle avancerede funktioner til at behandle eller manipulere data.
I denne tutorial lærer du, hvordan du opretter din perfekte LuckyTemplates-skabelon, der er konfigureret til dine behov og præferencer.
I denne blog vil vi demonstrere, hvordan man lagdelte feltparametre med små multipler for at skabe utrolig nyttig indsigt og visuals.
I denne blog vil du lære, hvordan du bruger LuckyTemplates rangerings- og brugerdefinerede grupperingsfunktioner til at segmentere et eksempeldata og rangordne det efter kriterier.
I denne tutorial vil jeg dække en specifik teknik omkring, hvordan du kun viser Kumulativ Total op til en bestemt dato i dine visuals i LuckyTemplates.