Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Denne opplæringen vil diskutere hvordan du velger eller filtrerer en bestemt dato i . Materialet som brukes i denne opplæringen kommer fra . Du vil lære hvordan du løser problemet og forstår metodene som brukes. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.

Innholdsfortegnelse

Forstå datarapporten i LuckyTemplates

Dette er eksempeldatarapporten som vil bli brukt. Den består av en tabellvisuell og to slicere.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Målet er å ha et datovalg over Dato-kolonnen på sliceren. Det betyr at når en dato i sliceren er valgt, vil tabellvisualiseringen vise de foregående dagene med et 7-dagers intervall. I dette eksemplet er dataene som er valgt i datoutsnittet 12. mai 2007.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Tabellen skal vise den forrige med 7-dagers forskjell mellom datoene.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Du må også lage en hva hvis-parameter for å dynamisk vise antall datoer basert på utvalget. Hvis du velger 3 , skal tabellvisualet bare vise 3 datoer.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Gjenskape tabellen og visualiseringer

Det første trinnet er å lage en hva hvis-parameter . Inne på LuckyTemplates-skrivebordet går du til fanen Modellering og velger Ny parameter .

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Legg til et navn til parameteren og sett Datatype til Heltall . Sett deretter minimums-, maksimums-, inkrement- og standardverdiene som vist på bildet nedenfor. Legg til sliceren på siden ved å merke av i boksen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Etter at du har trykket OK, vil en slicer bli generert. Konverter sliceren til en liste ved å klikke på rullegardinknappen og velge Liste.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Den neste tingen å gjøre er å lage en duplisert datotabell som vil bli brukt som en frakoblet datotabell. Gå til Power Query Editor og dupliser Datoer .

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Gi deretter nytt navn til dupliserte DisDate og klikk Lukk og bruk.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Laster inn datotabellene og skjærerne i LuckyTemplates

Når den dupliserte tabellen er lastet inn i LuckyTemplates-modellen, oppretter du en slicer med datokolonnen fra den frakoblede datotabellen. Åpne DisDate-tabellen og dra Date til lerretet.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Deretter gjør du visualiseringen til en slicer.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Deretter endrer du formatet på sliceren til List . Visualiseringen vil da se slik ut.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Deretter dupliserer sliceren og endrer datafeltet med Dato-kolonnen fra Datoer-tabellen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Hvis du velger en dato fra Dato-sliceren, begrenses salgstabellens antall synlige rader i matrisen. Hvis du velger 14. mars 2005, vil matrisen kun vise den datoen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Resultatet og målingen vil ikke fungere hvis du bruker dette oppsettet. Årsaken er at allerede før tiltaket begynner å virke, er tilgangen til matrisen allerede filtrert. For disse filtrerte verdiene vil du ikke kunne generere datoene med intervaller.

Opprette mål for utvalgsskjærerne

Du må lage et oppsett av datoer som ikke filtrerer matrisen direkte når et utvalg plasseres over en slicer. Filtreringen av matrisen må komme gjennom og ikke direkte fra slicerne. Så hvis du velger en dato fra DisDate-sliceren, vil ingen endringer skje i matrisen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Dette skjer fordi DisDate-tabellen ikke har et forhold til Dates-tabellen. Dette er grunnen til at det frakoblede bordet er viktig.

Slett sliceren med Datoer-tabellen og lag det første målet. Målingen vil hente verdien som er valgt fra Dates To Show-skjæreren. Den første variabelen du må lage er ValuesToShow . Deretter sidestiller du det med Dates To Show-verdien og skriv inn RETURN for å returnere verdiene som er valgt.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Dra det målet inn i matrisen. Hvis du velger 6 fra Dates To Show-sliceren, vil målekolonnen i matrisen også gi 6.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Deretter oppretter du en annen variabel som vil hente den frakoblede datoen som er valgt i sliceren.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Når du er ferdig, vil du se verdien valgt i DisDate-sliceren vist i Mål-kolonnen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Opprette en beregnet tabell

Lag en liste over datoer med 7-dagers intervaller fra den valgte datoen i sliceren. Forsikre deg deretter om at matrisen vil generere antall dager basert på Datoer som skal vises slicer-valget. For å gjøre dette må du først opprette en .

Den beregnede tabellen hjelper deg med å visualisere hvordan datoer genereres inne i DAX-koden. Gå til datavisningen og klikk på Ny tabell.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Skriv inn variabelen SelectedDate og sidestil den med DATE -funksjonen. Skriv deretter inn en dato i parentesen. Deretter oppretter du en annen variabel som spesifiserer antall datoer du vil vise i matrisen. Skriv inn DatesToShow og sidestill det med antall datoer.

Deretter oppretter du en annen variabel som vil generere en liste over datoer med 7-dagers intervaller. Skriv inn datoliste og bruk GENERATESERIES -funksjonen. er en funksjon som genererer en liste med tall ved å sende inn flere argumenter.

For det første argumentet, skriv inn SelectedDate – (DatesToShow * 7)  som startverdi. Skriv deretter inn SelectedDate som sluttverdi. For det siste argumentet, skriv inn 7 for økningsverdien eller intervallet mellom datoer. Når du er ferdig, lukk funksjonen og skriv inn RETURN og DateList .

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Du kan da se en tabell som inneholder syv verdier som starter fra 5. mai og går tilbake i trinn på syv.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Nå vil du legge merke til at det skapte for mange datoer enn det du trenger. I den opprinnelige eksempelrapporten var den siste datoen som ble vist med de samme Datoer å vise og Dato-valgene 31. mars.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

For å fikse det kan du enten endre DatesToShow-variabelverdien til 5 eller trekke fra 1 fra 6. I dette eksemplet trekkes 1 fra 6.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Etter det vil du se at verdiene slutter 31. mars.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Injiserer datoer i filterkonteksten

Deretter må du bruke og injisere disse datoene i en datofilterkontekst. Du må også beregne salgsbeløpet i filterkonteksten. Så kopier GENERATESERIES- syntaksen og gå tilbake til målingen din.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Legg til en ny variabel i målet og skriv inn DatesToShow . Sett deretter likhetstegn mellom variabelen og GENERATESERIES -syntaksen. Endre variablene inne i syntaksen fra SelectedDate til DisSelectedDate , og DatesToShow til ValuesToShow .

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Til slutt lager du en variabel for resultatet. Lik det med CALCUATE- funksjonen over Total Sales og DatesToShow for å injisere alle datoene mottatt fra GENERATESERIES- syntaksen i filterkonteksten. Når du er ferdig, skriv inn Resultat i RETURN -funksjonen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Nå vil du se at matrisen ikke vil vise datoene som DAX-koden ber om. Hvis du tar med Total Sales-målet i matrisen, vil du se at koden returnerer selve salgsbeløpet.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Problemet med tiltaket er at datoen som ble opprettet i GENERATESERIES- syntaksen har en datalinje med den frakoblede datotabellen. Dette betyr at Dato-tabellen ikke er koblet til Sales-tabellen. Det er derfor når listen over datoer ble brukt i filterkonteksten, inkluderte den ikke Salg-tabellen.

Du må bruke funksjonen til å lage virtuelle relasjoner og bruke filterkonteksten.

Bruke TREATAS for å fikse datoen i LuckyTemplates Matrix

Du må behandle verdiene som ble mottatt fra GENERATESERIES -syntaksen som om de var en del av den opprinnelige Dato-tabellen. Dette bygger i utgangspunktet en avstamning med Dato-kolonnen i Dato-tabellen som er i datamodellen.

Så i resultatvariabelen, skriv inn TREATAS etter Total Sales-tabellen og oppgi argumentene. For det første argumentet, oppgi kolonnen eller tabellen som ikke har relasjonen. I dette tilfellet brukes DatesToShow- kolonnen.

For det andre argumentet, oppgi kolonnen du vil tilordne avstamningen til kolonnen til i det første argumentet. I dette eksemplet brukes Dato-kolonnen fra Datoer-tabellen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Selv med korrigeringene i koden vil imidlertid ikke Mål-kolonnen i matrisen vise de riktige verdiene når du bruker sliceren. Du kan også legge merke til at verdiene i kolonnen gjentar seg.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Problemet ligger i måten koden ble skrevet på. TREATAS bruker alle verdier i filterkonteksten ogoverstyrer den eksisterende filterkonteksten på den valgte datoen med alle verdiene som er hentet fra GENERATESERIES- funksjonen.

Bruk av KEEPFILTERS-funksjonen over TREATAS

For å sikre at filteret injiseres i filteret uten å overstyre den eksisterende filterkonteksten, må du bruke KEEPFILTERS- funksjonen. endrer CALCULATEs filtreringssemantikk.

Skriv inn KEEPFILTERS før TREATAS -funksjonen og bekreft tiltaket.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Du vil nå se at verdiene i Mål-kolonnen ikke gjentar seg.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Hvis du utvider månedene mai og april, vil du se at verdiene i Mål-kolonnen er lik verdiene i Totalt salg-kolonnen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Fjern totalsalgsmålet i matrisen og velg et tall i Datoer som skal vises. Du vil da se det tilsvarende antallet datoer som vises i matrisen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Retting av manglende datoproblemer i LuckyTemplates-matrisen

Et annet problem med denne rapporten er at når du velger 8 i DatesToShow- sliceren, endres ikke matrisen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Hvis du velger 9 i sliceren, viser matrisen bare 8 datoer. Du vil også legge merke til at 17. mars mangler på listen over datoer.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Årsaken er at noen dager i Dato-tabellen er det ingen samsvarende transaksjoner i Sales-tabellen. Så tiltaket returnerer en blank for disse datoene. Siden den returnerer blank, fjerner koden som kjører bak matrisen de tomme radene fra resultatet.

LuckyTemplates bruker deretter det returnerte resultatet til å fylle ut matrisen. Så siden noen dager returnerer tomme, kan du ikke se Salg og oppføringer for disse dagene i matrisen.

Hvis du vil vise noe for dagene uten salg i dataene dine, går du tilbake til målet og fjerner CALCUATE- syntaksen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Bruker DAX for å løse manglende dato i LuckyTemplates

Lag en datalinje ved å skrive TREATAS over DatesToShow- og Dato- kolonnen i Dates- tabellen. Sjekk deretter om alle datoene som returneres av TREATAS -funksjonen er inkludert i filterkonteksten.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Derfra deler du utførelsen av flere variabler. Endre variabelnavnet fra Result til CreateDataLineage for å vise at den lagrer resultatet av TREATAS .

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Deretter oppretter du en annen variabel som vil inneholde alle datoene som er synlige i filterkonteksten som kommer fra matrisen. Skriv inn VisibleDate som variabelnavnet og bruk over Dato- kolonnen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Den neste tingen å gjøre er å lage en kolonne over resultatet av TREATAS -funksjonen som vil inneholde salgsbeløpet. Skriv DatesWithSales som variabelnavnet og bruk over CreateDataLineage- variabelen.

Inne i funksjonen oppretter du en ny kolonne og gir den navnet Salgsbeløp med Total Sales-målet i radkonteksten for å starte kontekstovergang.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Deretter oppretter du en variabel som vil sjekke om alle datoene som er lagret i DatesWithSales -variabelen er inkludert i filterkonteksten. Skriv inn IsDateInFilterContext som variabelnavnet og bruk funksjonen.

Derfra skriver du DatesWithSales som det første argumentet for funksjonen. Deretter skriver du inn Dates[Dato] IN VisibleDate som det andre argumentet for å sjekke om datoen i DatesWithSales -tabellen er inkludert i VisibleDate- variabelen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Den siste variabelen du må opprette er Resultat . Bruk funksjonen over IsDateInFilterContext -variabelen. Skriv [@Salgsbeløp] + 0 for å inkludere dagene som ikke tidligere var inkludert.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Etter alt dette vil du se den manglende datoen, 17. mars, i matrisen.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Bruker +0 i originalmålet

De forrige trinnene viste deg hvordan du bygger et mål for å inkludere alle datoene som ikke har transaksjoner i faktatabellen. Nå, hvis du bruker + 0 i det opprinnelige målet du opprettet, vil alle verdiene i Mål-kolonnen være 0.

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Velg spesifikk dato i LuckyTemplates ved å bruke DAX-beregning

Årsaken er at resultatvariabelen inneholder enten et tomt beløp eller et salgsbeløp. Så hvis du legger til 0, erstatter du det tomme med 0. Husk at oppsummerte kolonner fjerner de tomme radene fra datasettet. Returner dem til LuckyTemplates slik at de bare kan vise begrensede rader og ikke de tomme feltene.

Men siden 0 er lagt til, tvinges oppsummeringskolonnen til å beholde radene. Den returnerer deretter en tabell som inneholder alle datoene som finnes i Datoer-tabellen og viser null uansett hvor det er aktuelt eller når det er tomt.

Dette er grunnen til at du trenger å omskrive målet på en måte der du bare trenger å legge til 0 til datoene som er synlige i filterkonteksten og er inkludert i DatesToShow- variabelen .




Konklusjon

For å lage en datarapport som lar deg velge en bestemt dato i en , må du bruke beregnede tabeller og. DAX-funksjoner og -mål må skrives på en måte som lett kan oppnå resultater.


Variabler og uttrykk i Power Query Editor

Variabler og uttrykk i Power Query Editor

Denne opplæringen vil diskutere om variabler og uttrykk i Power Query Editor. Du lærer hvordan du skriver og bygger dem riktig.

Hvordan lage et Lucky Templates-varmekart

Hvordan lage et Lucky Templates-varmekart

Et LuckyTemplates-varmekart er en type visualisering som brukes til å vise datatetthet på et kart. I denne opplæringen vil jeg diskutere hvordan vi kan lage en – ikke gå glipp av noe!

Opprette et Pareto-diagram i LuckyTemplates – Avansert DAX

Opprette et Pareto-diagram i LuckyTemplates – Avansert DAX

Jeg skal lære deg et veldig interessant eksempel rundt Pareto-prinsippet og hvordan du lager et Pareto-diagram ved hjelp av viktige DAX-formler.

Egendefinert stolpediagram i LuckyTemplates: varianter og modifikasjoner

Egendefinert stolpediagram i LuckyTemplates: varianter og modifikasjoner

Lær hvordan et tilpasset stolpediagram på markedsplassen kan brukes til datasammenligning og hvordan du kan lage dem ved å bruke eksempler i LuckyTemplates.

Kraftautomatisering av statiske resultater: En oversikt

Kraftautomatisering av statiske resultater: En oversikt

Lær hvordan Power Automate Static Results-funksjonen fungerer og hvorfor det er bra å bli lagt til de beste praksisene når du lager flytdiagrammer.

LuckyTemplates Python-opplæring: Hvordan oversette tekster

LuckyTemplates Python-opplæring: Hvordan oversette tekster

eDNA demonstrerer hvordan du utfører språk- eller tekstoversettelse ved hjelp av Python og overfører det til LuckyTemplates. LuckyTemplates Python-opplæring.

Lag et Gantt-diagram i LuckyTemplates Report Builder

Lag et Gantt-diagram i LuckyTemplates Report Builder

I denne opplæringen lærer du hvordan du bruker Gauge Bullet Graph til å lage et Gantt-diagram i LuckyTemplates Report Builder.

Lag 3D-spredningsplott ved å bruke Python i LuckyTemplates

Lag 3D-spredningsplott ved å bruke Python i LuckyTemplates

I denne opplæringen lærer du hvordan du lager et tredimensjonalt (3D) spredningsplott ved å bruke Python i LuckyTemplates.

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet