Del via


DATESBETWEEN

gælder for:beregnet kolonneberegnet tabelberegning af målingvisualisering

Seddel

Denne funktion frarådes til brug i visuelle beregninger da den sandsynligvis returnerer meningsløse resultater.

I forbindelse med datokolonneinput returnerer en tabel, der indeholder en kolonne med datoer, der starter med en angivet startdato og fortsætter indtil en angivet slutdato.

I forbindelse med kalenderinput returnerer en tabel, der starter med en angivet startdato og fortsætter indtil en angivet slutdato. Tabellen indeholder alle primære mærkede kolonner og alle tidsrelaterede kolonner.

Denne funktion er velegnet til at overføre den CALCULATE funktion som et filter. Brug det til at filtrere et udtryk efter et brugerdefineret datointerval.

Seddel

Hvis du arbejder med standarddatointervaller, f.eks. dage, måneder, kvartaler eller år, anbefales det, at du bruger den bedst egnede DATESINPERIOD funktion.

Syntaks

DATESBETWEEN(<dates> or <calendar>, <StartDate>, <EndDate>)

Parametre

Udtryk Definition
dates or calendar En kolonne, der indeholder datoer eller en kalenderreference
StartDate Et dato-/dagsudtryk. Hvis der bruges kalendersyntaks, skal du bruge den samme datatype som den primære kolonne, der er mærket til kategorien Dag.
EndDate Et dato-/dagsudtryk. Hvis der bruges kalendersyntaks, skal du bruge den samme datatype som den primære kolonne, der er mærket til kategorien Dag.

Returværdi

I forbindelse med datokolonneinput er det en tabel, der indeholder en enkelt kolonne med datoværdier.
I forbindelse med kalenderinput er det en tabel, der indeholder alle primære mærkede kolonner og alle tidsrelaterede kolonner.

Bemærkninger

  • I det mest almindelige tilfælde er dates en reference til datokolonnen i en markeret datotabel.

  • Hvis StartDate er BLANK, er StartDate den tidligste værdi i kolonnen dates. For kalender er det den første værdi i kolonnen, der er mærket som dag.

  • Hvis EndDate er BLANK, er EndDate den seneste værdi i kolonnen dates. For kalender er det den sidste værdi i kolonnen, der er mærket som dag.

  • Datoer, der bruges som StartDate og EndDate, er inklusive. Så hvis værdien for StartDate f.eks. er 1. juli 2019, medtages denne dato i den returnerede tabel (forudsat at datoen findes i kolonnen dates).

  • I forbindelse med datokolonneinput kan den returnerede tabel kun indeholde datoer, der er gemt i kolonnen Dates . Så hvis kolonnen Dates f.eks. starter den 1. juli 2017, og den StartDate værdi er den 1. juli 2016, starter den returnerede tabel fra den 1. juli 2017.

  • Hvis inputdatoen for kalenderen ikke findes i kolonnen med mærkede dage, behandles den som BLANK , og den første/sidste værdi bruges derfor.

  • I forbindelse med kalenderinput skal du bruge samme datatype og format som kolonnen med mærkede dage for startdatoen og slutdatoen. Hvis kolonnen f.eks. bruger formatet YYYY-Sn-Qn-Mnn-Wnn-Dnn (f.eks. "2014-S2-Q4-M11-W45-D03"), skal startdatoen og slutdatoen følge samme format (f.eks. "2015-S2-Q4-M11-W45-D03"). Ellers er funktionsmåden udefineret.

  • Denne funktion understøttes ikke til brug i DirectQuery-tilstand, når den bruges i beregnede kolonner eller RLS-regler (row-level security).

Eksempel

I følgende tabelmålingsdefinitionen sales bruges funktionen DATESBETWEEN til at oprette en life-to-date-beregning (LTD). Life-to-date repræsenterer akkumuleringen af en måling over tid siden starten af tiden.

Bemærk, at formlen bruger funktionen MAX. Denne funktion returnerer den seneste dato, der er i filterkonteksten. Funktionen DATESBETWEEN returnerer derfor en tabel med datoer, der starter fra den tidligste dato til den seneste dato, der rapporteres.

Eksempler i denne artikel kan bruges sammen med eksempelmodellen Adventure Works DW 2020 Power BI Desktop. Hvis du vil hente modellen, skal du se DAX eksempelmodel.

Customers LTD =
CALCULATE (
    DISTINCTCOUNT ( Sales[CustomerKey] ),
    DATESBETWEEN ( 'Date'[Date], BLANK (), MAX ( 'Date'[Date] ) )
)

Tænk på, at den tidligste dato, der er gemt i tabellen Dato, er den 1. juli 2017. Så når en rapport filtrerer målingen efter juni 2020, returnerer funktionen DATESBETWEEN et datointerval fra den 1. juli 2017 til den 30. juni 2020.

Eksempel på kalenderbaseret time intelligence

I følgende tabelmålingsdefinitionen sales bruges funktionen DATESBETWEEN til at oprette en life-to-date-beregning (LTD). Life-to-date repræsenterer akkumuleringen af en måling over tid siden starten af tiden.

Bemærk, at formlen bruger funktionen MAX. Denne funktion returnerer den maksimale datonøgle, der er i filterkonteksten. Funktionen DATESBETWEEN returnerer derfor en tabel med datoer, der starter fra den tidligste dato til den seneste dato, der rapporteres. DateKey bruges som eksempel til at vise, at kategorien "Dag" kan mærkes med en kolonne, der ikke er datotype

Customers LTD =
CALCULATE (
    DISTINCTCOUNT ( Sales[CustomerKey] ),
    DATESBETWEEN ( FiscalCalendar, BLANK (), MAX ( 'Date'[DateKey] ) )
)