Blogs

thumb_!

Før/efter måned enkelvalgt udsnit.

Baggrund

Nogle gange er det nødvendigt at gå tilbage i data og vise, hvordan det så ud på et tidligere tidspunkt. Normalt bruger man udsnit fra en bestemt start- og slutdato, men det kan blive kompliceret, især når man arbejder med måneder i stedet for dage.

Hvis man ønsker at bruge udsnit baseret på år/måned, kan det blive besværligt for brugeren at huske altid at vælge det korrekte interval før eller efter den ønskede periode.

Hvis brugeren kun vælger én måned, vil vores visualiseringer være filtreret med fokus på den valgte måned, hvilket betyder, at vi ikke vil kunne vise data fra tidligere måneder.

Derfor kunne det være en fordel at have en enkelt valgmulighed for udsnit og lade modellen håndtere resten automatisk.

Derfor er vi nødt til at udvide modellen ved at inkludere en “kopieret” version af datodimensionen. Denne kopierede version vil ikke være forbundet med andre tabeller, men vil blive brugt i dataene til at filtrere og styre, hvad der bliver vist i visualiseringerne.

Case

Formålet med denne opgave er at oprette en side med nøgletal (KPI’er) for den valgte måned. Derudover skal der være en graf, der viser tidligere data ud fra den valgte måned. For at gøre dette brugervenligt vil vi tilbyde brugeren en simpel valgmulighed for at vælge et specifikt år og måned som udsnit.

Dette vil gøre det lettere for brugeren at få adgang til den ønskede information..

Model

Model ændringer

Det først vi gør er at oprette en kopi af vores Dato dimension som kun skal agere som udsnit, den skal ikke bindes til andre tabeller i modellen.

Det kan bare laves ved at lave en DAX udtryk som en ny tabel

Slicer Date = 'Date'
// Hvor 'Date' er vores Dato Dimension

Husk at formatere og sætte egenskaber som den originale dato dimension (sortering mm)

Det er så den ny oprettet dimension adderes til side som et udsnit (enkel valg)

Så skal vi administrere de filtre, vi bruger. I dette tilfælde vil vi blot oprette fire målinger (Sales, Cogs, Profit og Units Sold) for de nøgletal, vi har brug for. Dette filter kan også oprettes som en beregnet gruppe (Calculation Groups), så det vil fungere på tværs af alle målinger.

Her er et eksempel på Sales $

Sales $ (f) = 
CALCULATE(

    // Det measure vi vil påvirke med filter
    [Sales $],

    // Her er, hvor vi sætter filteret. Vi tager datoen for hver salgstransaktion
    // ('Date'[Year | Month #])
    // og sammenligner den med den maksimale dato i den valgte periode 
    // ('Slicer Date'[Year | Month #]). 
    // Vi ønsker kun salgstransaktioner, der er sket før eller i samme måned 
    // og år som den valgte dato. 
    // Vi bruger År | Måned løbenr, da vi har brug for at se alt det fra en bestemt år/måned

    filter('Date','Date'[Year | Month #]<= MAX('Slicer Date'[Year | Month #]))
)

Udover det, skal vi så også lave measures for værdien for den valgte måned, dvs Dato skal være lig med vores udsnit

Sales $ Mth (f) = 
CALCULATE(
    [Sales $],
    filter('Date','Date'[Year | Month #] = MAX('Slicer Date'[Year | Month #]))
)

Nu kan vi så addere vores beregninger til vores “kort” og grafen (husk her skal du bruge den originale dato dimension som X)

Et alternativ er at lave grafen med det measure der ikke er filteret, så den viser data for alle måneder, men bruge betinget formatering til at markere den valgte periode.

Hent Power BI filen her