Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Tabellen skal vise det foregående med en 7-dages forskel mellem datoerne.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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 .

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Når du har trykket på OK, genereres en udsnitsmaskine. Konverter sliceren til en liste ved at klikke på rullemenuen og vælge Liste.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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 .

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Derefter skal du omdøbe den dublet DisDate og klikke på Luk & Anvend.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Gør derefter visualiseringen til en udskærer.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Skift derefter formatet på udsnitsværktøjet til Liste . Visualiseringen vil så se således ud.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Dupliker derefter udsnitsværktøjet og skift datafeltet med kolonnen Dato fra tabellen Datoer.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Dernæst skal du oprette en anden variabel, der vil hente den afbrudte dato, der er valgt i udsnitsværktøjet.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Når du er færdig, vil du se den valgte værdi i DisDate sliceren vist i kolonnen Mål.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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 .

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Derefter vil du se, at værdierne slutter den 31. marts.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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 .

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Du vil nu se, at værdierne i kolonnen Mål ikke gentages.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Å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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Derfra opdeles eksekveringen med flere variabler. Skift variabelnavnet fra Resultat til CreateDataLineage for at vise, at det gemmer resultatet af TREATAS .

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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 .

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Efter alt det, vil du så se den manglende dato, 17. marts, i matrixen.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

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.

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Vælg specifik dato i LuckyTemplates ved hjælp af DAX-beregning

Å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.


Hvad er Power Query & M Language: En detaljeret oversigt

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.

Opret en sideinddelt rapport: Tilføjelse af tekster og billeder

Opret en sideinddelt rapport: Tilføjelse af tekster og billeder

Lær, hvordan du opretter en sideinddelt rapport, tilføjer tekster og billeder og derefter eksporterer din rapport til forskellige dokumentformater.

SharePoint Automate-funktionen | En introduktion

SharePoint Automate-funktionen | En introduktion

Lær, hvordan du bruger SharePoint-automatiseringsfunktionen til at skabe arbejdsgange og hjælpe dig med at mikrostyre SharePoint-brugere, -biblioteker og -lister.

Løs en dataanalyseudfordring med LuckyTemplates Accelerator

Løs en dataanalyseudfordring med LuckyTemplates Accelerator

Udvid dine rapportudviklingsevner ved at deltage i en dataanalyseudfordring. Acceleratoren kan hjælpe dig med at blive LuckyTemplates-superbruger!

Løbende totaler i LuckyTemplates ved hjælp af DAX

Løbende totaler i LuckyTemplates ved hjælp af DAX

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.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Forstå konceptet med variabler i DAX i LuckyTemplates og betydningen af ​​variabler for, hvordan dine mål beregnes.

LuckyTemplates hældningsdiagram: en oversigt

LuckyTemplates hældningsdiagram: en oversigt

Lær mere om det brugerdefinerede visuelle kaldet LuckyTemplates Slope-diagrammet, som bruges til at vise stigning/fald for en enkelt eller flere metrics.

LuckyTemplates farvetemaer til ensartede visualiseringer

LuckyTemplates farvetemaer til ensartede visualiseringer

Opdag farvetemaerne i LuckyTemplates. Disse er afgørende for, at dine rapporter og visualiseringer kan se ud og fungere problemfrit.

Beregning af gennemsnit i LuckyTemplates: Isolering af resultater på ugedage eller weekender ved hjælp af DAX

Beregning af gennemsnit i LuckyTemplates: Isolering af resultater på ugedage eller weekender ved hjælp af DAX

Beregning af et gennemsnit i LuckyTemplates kan gøres på mange måder for at give dig præcise oplysninger til dine virksomhedsrapporter.

LuckyTemplates tema | LuckyTemplates Desktop Standard Theming

LuckyTemplates tema | LuckyTemplates Desktop Standard Theming

Lad os dykke ned i Standard LuckyTemplates-temaer og gennemgå nogle af de funktioner, der er indbygget i selve LuckyTemplates Desktop-applikationen.