Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Den här handledningen kommer att diskutera hur du väljer eller filtrerar ett specifikt datum i din . Materialet som används i denna handledning kommer från . Du lär dig hur du löser problemet och förstår de metoder som används. Du kan se hela videon av denna handledning längst ner på den här bloggen.

Innehållsförteckning

Förstå datarapporten i LuckyTemplates

Detta är exempeldatarapporten som kommer att användas. Den består av en bordsvisuell och två skärare.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Målet är att ha ett datumval över kolumnen Datum på skivaren. Det betyder att när ett datum i slicern har valts kommer tabellvisualiseringen att visa de föregående dagarna med ett 7-dagarsintervall. I det här exemplet är data som valts i datumutsnittet 12 maj 2007.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Tabellen ska visa det föregående med en skillnad på 7 dagar mellan datumen.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Du måste också skapa en what if-parameter för att dynamiskt visa antalet datum baserat på urvalet. Om du väljer 3 ska tabellvisualen endast visa 3 datum.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Återskapa tabellen och visualiseringarna

Det första steget är att skapa en what if-parameter . Inuti LuckyTemplates skrivbord, gå till fliken Modellering och välj Ny parameter .

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Lägg till ett namn till parametern och ställ in Datatyp på Helnummer . Ställ sedan in minimi-, max-, inkrement- och standardvärden som visas i bilden nedan. Lägg till skivaren på sidan genom att markera rutan.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

När du har tryckt på OK genereras en slicer. Konvertera skivaren till en lista genom att klicka på rullgardinsknappen och välja Lista.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Nästa sak att göra är att skapa en duplicerad datumtabell som kommer att användas som en frånkopplad datumtabell. Gå till Power Query Editor och duplicera datum .

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Byt sedan namn på dubbletten av DisDate och klicka på Stäng och tillämpa.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Laddar datumtabellerna och skivorna i LuckyTemplates

När den duplicerade tabellen har laddats i LuckyTemplates-modellen, skapa en slicer med datumkolumnen från den frånkopplade datumtabellen. Öppna tabellen DisDate och dra Date till arbetsytan.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Förvandla sedan visualiseringen till en skivare.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Efter det ändrar du formatet på utsnittet till Lista . Visualiseringen kommer då att se ut så här.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Duplicera sedan skivaren och ändra datafältet med kolumnen Datum från tabellen Datum.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Om du väljer ett datum från datumutsnittet begränsas försäljningstabellens antal synliga rader i matrisen. Om du väljer 14 mars 2005 kommer matrisen bara att visa det datumet.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Resultatet och måttet fungerar inte om du använder den här inställningen. Anledningen är att redan innan åtgärden börjar fungera har tillgången till matrisen redan filtrerats. För dessa filtrerade värden kommer du inte att kunna generera datum med intervall.

Skapa mått för urvalsskivorna

Du måste skapa en uppsättning av datum som inte filtrerar matrisen direkt när en markering placeras över en slicer. Filtreringen av matrisen måste komma genom och inte direkt från skärarna. Så om du väljer ett datum från DisDate slicer kommer inga ändringar att ske i matrisen.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Detta händer eftersom DisDate-tabellen inte har en relation med Dates-tabellen. Det är därför det frånkopplade bordet är viktigt.

Ta bort skivaren med tabellen Datum och skapa det första måttet. Måttet kommer att hämta värdet som är valt från datum att visa slicer. Den första variabeln som du behöver skapa är ValuesToShow . Jämställ sedan det med värdet Dates To Show och skriv in RETURN för att returnera de valda värdena.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Dra det måttet till matrisen. Om du väljer 6 från datum att visa slicer, kommer mätkolumnen i matrisen också att ge 6.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Skapa sedan en annan variabel som kommer att hämta det frånkopplade datumet som valts i utsnittet.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

När du är klar ser du värdet som valts i DisDate slicer som visas i kolumnen Measure.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Skapa en beräknad tabell

Skapa en lista med datum med 7-dagarsintervall från det valda datumet i skivaren. Se sedan till att matrisen kommer att generera antalet dagar baserat på datum för att visa slicer-valet. För att göra detta måste du först skapa en .

Den beräknade tabellen hjälper dig att visualisera hur datum genereras inuti DAX-koden. Gå till datavyn och klicka på Ny tabell.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Mata in variabeln SelectedDate och likställ den med DATE -funktionen. Ange sedan ett datum inom parentes. Skapa sedan en annan variabel som anger antalet datum som du vill visa i matrisen. Mata in DatesToShow och likställ det med antalet datum.

Efter det skapar du en annan variabel som genererar en lista över datum med 7-dagarsintervall. Mata in DateList och använd funktionen GENERATESERIES . är en funktion som genererar en lista med tal genom att skicka in flera argument.

För det första argumentet anger du SelectedDate – (DatesToShow * 7)  som startvärde. Ange sedan SelectedDate som slutvärde. För det sista argumentet, mata in 7 för inkrementvärdet eller intervallet mellan datum. När du är klar, stäng funktionen och skriv in RETURN och DateList .

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Du kan sedan se en tabell som innehåller sju värden från och med den 5 maj och går tillbaka i steg om sju.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Nu kommer du att märka att det skapade för många datum än vad du behöver. I den ursprungliga exempelrapporten var det senaste datumet som visades med samma datum att visa och datum 31 mars.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

För att fixa det kan du antingen ändra DatesToShow-variabelns värde till 5 eller subtrahera 1 från 6. I det här exemplet subtraheras 1 från 6.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Efter det kommer du att se att värdena slutar den 31 mars.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Injicera datum i filtersammanhang

Därefter måste du använda och injicera dessa datum i ett datumfilterkontext. Du måste också beräkna försäljningsbeloppet i filtersammanhang. Så kopiera GENERATESERIES- syntaxen och gå tillbaka till ditt mått.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Lägg till en ny variabel i måttet och skriv in DatesToShow . Jämställ sedan den variabeln med syntaxen GENERATESERIES . Ändra variablerna i syntaxen från SelectedDate till DisSelectedDate och DatesToShow till ValuesToShow .

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Skapa slutligen en variabel för resultatet. Jämställ det med funktionen CALCULATE över Total Sales och DatesToShow för att injicera alla datum som tas emot från GENERATESERIES -syntaxen i filterkontexten. När du är klar, mata in Resultat i RETURN -funktionen.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Nu kommer du att se att matrisen inte visar datumen som DAX-koden begär. Om du tar med måttet Total försäljning i matrisen ser du att koden returnerar själva försäljningsbeloppet.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Problemet med måttet är att datumet som skapades i GENERATESERIES -syntaxen har en datalinje med den frånkopplade datumtabellen. Det betyder att tabellen Datum inte är kopplad till tabellen Försäljning. Det var därför när listan med datum användes i filtersammanhanget, inkluderade den inte tabellen Försäljning.

Du måste använda funktionen för att skapa virtuella relationer och tillämpa filterkontexten.

Använda TREATAS för att fixa datumet i LuckyTemplates Matrix

Du måste behandla värdena som togs emot från GENERATESERIES- syntaxen som om de ingick i den ursprungliga Date-tabellen. Detta bygger i grund och botten en linje med Datum-kolumnen i Date-tabellen som finns i datamodellen.

Så i resultatvariabeln anger du TREATAS efter tabellen Total försäljning och ger argumenten. För det första argumentet, ange kolumnen eller tabellen som inte har relationen. I det här fallet används kolumnen DatesToShow .

För det andra argumentet, ange kolumnen som du vill mappa kolumnens härkomst till i det första argumentet. I det här exemplet används kolumnen Datum från tabellen Datum.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Men även med korrigeringarna i koden kommer mätkolumnen i matrisen fortfarande inte att visa de korrekta värdena när du använder skivaren. Du kan också märka att värdena i kolumnen upprepas.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Problemet ligger i hur koden skrevs. TREATAS tillämpar alla värden i filterkontexten ochåsidosätter den befintliga filterkontexten vid det valda datumet med alla värden som har hämtats från funktionen GENERATESERIES .

Använda KEEPFILTERS-funktionen över TREATAS

För att säkerställa att filtret injiceras i filtret utan att åsidosätta det befintliga filterkontexten, måste du använda KEEPFILTERS -funktionen. ändrar CALCULATE :s filtreringssemantik.

Mata in KEEPFILTERS före TREATAS -funktionen och bekräfta måttet.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Du kommer nu att se att värdena i kolumnen Mått inte upprepas.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Om du utökar månaderna maj och april ser du att värdena i kolumnen Mät är lika med värdena i kolumnen Total försäljning.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Ta bort måttet Total försäljning i matrisen och välj ett nummer i snittet Datum att visa. Du kommer då att se motsvarande antal datum som visas i matrisen.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Åtgärda saknade datumproblem i LuckyTemplates-matrisen

Ett annat problem med den här rapporten är att när du väljer 8 i DatesToShow -skivan ändras inte matrisen.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Om du väljer 9 i skivaren visar matrisen bara 8 datum. Du kommer också att märka att den 17 mars saknas i listan över datum.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Anledningen är att vissa dagar i tabellen Datum finns det inga matchande transaktioner i tabellen Försäljning. Så måttet returnerar ett blanksteg för dessa datum. Eftersom det returnerar tomt tar koden som körs bakom matrisen bort de tomma raderna från resultatet.

LuckyTemplates använder sedan det returnerade resultatet för att fylla i matrisen. Så eftersom vissa dagar återkommer tomma, kan du inte se försäljning och poster för dessa dagar i matrisen.

Om du vill visa något för dagar utan försäljning i dina data, gå tillbaka till måttet och ta bort syntaxen BERÄKNA .

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Använder DAX för att lösa saknat datum i LuckyTemplates

Skapa en datalinje genom att skriva TREATAS över kolumnen DatesToShow och Date i tabellen Datum . Kontrollera sedan om alla datum som returneras av TREATAS -funktionen ingår i filterkontexten.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Därifrån delar du exekveringen med flera variabler. Ändra variabelnamnet från Result till CreateDataLineage för att visa att den lagrar resultatet av TREATAS .

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Skapa sedan en annan variabel som kommer att hålla alla datum som är synliga i filterkontexten som kommer från matrisen. Ange VisibleDate som variabelnamnet och använd över kolumnen Datum .

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Nästa sak att göra är att skapa en kolumn över resultatet av TREATAS -funktionen som skulle innehålla försäljningsbeloppet. Skriv DatesWithSales som variabelnamnet och använd över CreateDataLineage -variabeln.

Inuti funktionen skapar du en ny kolumn och döper den till försäljningsbelopp med måttet Total försäljning i radkontexten för att initiera kontextövergång.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Efter det skapar du en variabel som kontrollerar om alla datum som är lagrade i DatesWithSales- variabeln ingår i filterkontexten. Mata in IsDateInFilterContext som variabelnamnet och använd funktionen.

Därifrån skriver du DatesWithSales som det första argumentet för funktionen. Ange sedan Dates[Date] IN VisibleDate som det andra argumentet för att kontrollera om datumet i tabellen DatesWithSales ingår i variabeln VisibleDate .

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Den sista variabeln som du behöver skapa är Result . Använd funktionen över variabeln IsDateInFilterContext . Skriv [@försäljningsbelopp] + 0 för att inkludera de dagar som inte tidigare inkluderades.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Efter allt detta kommer du att se det saknade datumet, 17 mars, i matrisen.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Använder +0 i originalmåttet

De föregående stegen visade hur du bygger ett mått för att inkludera alla datum som inte har transaktioner i faktatabellen. Nu, om du använder + 0 i det ursprungliga måttet som du skapade, kommer värdena i kolumnen Mått alla att vara 0.

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Välj specifikt datum i LuckyTemplates med hjälp av DAX-beräkning

Anledningen är att resultatvariabeln innehåller antingen ett tomt belopp eller ett försäljningsbelopp. Så om du lägger till 0, ersätter du den tomma med 0. Kom ihåg att sammanfattade kolumner tar bort de tomma raderna från datamängden. Returnera dem till LuckyTemplates så att de bara kan visa begränsade rader och inte de tomma.

Men eftersom 0 läggs till tvingas sammanfattningskolumnen behålla raderna. Den returnerar sedan en tabell som innehåller alla datum som finns i tabellen Datum och visar noll varhelst den är tillämplig eller när den är tom.

Detta är anledningen till att du behöver skriva om måttet på ett sätt där du bara behöver lägga till 0 till de datum som är synliga i filterkontexten och som ingår i DatesToShow- variabeln .




Slutsats

För att skapa en datarapport som låter dig välja ett specifikt datum i en , måste du använda beräknade tabeller och. DAX-funktioner och -mått måste skrivas på ett sätt som lätt kan få resultat.


Vad är Power Query & M Language: En detaljerad översikt

Vad är Power Query & M Language: En detaljerad översikt

Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.

Skapa en paginerad rapport: Lägga till texter och bilder

Skapa en paginerad rapport: Lägga till texter och bilder

Lär dig hur du skapar en sidnumrerad rapport, lägger till texter och bilder och sedan exporterar din rapport till olika dokumentformat.

SharePoint Automate-funktionen | En introduktion

SharePoint Automate-funktionen | En introduktion

Lär dig hur du använder SharePoint-automatiseringsfunktionen för att skapa arbetsflöden och hjälpa dig att mikrohantera SharePoint-användare, bibliotek och listor.

Lös en dataanalysutmaning med LuckyTemplates Accelerator

Lös en dataanalysutmaning med LuckyTemplates Accelerator

Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!

Löpande summor i LuckyTemplates med DAX

Löpande summor i LuckyTemplates med DAX

Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.

LuckyTemplates Slope Chart: En översikt

LuckyTemplates Slope Chart: En översikt

Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.

LuckyTemplates färgteman för enhetliga visualiseringar

LuckyTemplates färgteman för enhetliga visualiseringar

Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.