DATESBETWEEN

gjelder:beregnet kolonneberegnet tabellmålevisualobjektberegning

Notat

Denne funksjonen frarådes for bruk i visuelle beregninger da den sannsynligvis returnerer meningsløse resultater.

For inndata for datokolonne returnerer du en tabell som inneholder en kolonne med datoer som begynner med en angitt startdato og fortsetter til en angitt sluttdato.

For kalenderinndata returnerer du en tabell som begynner med en angitt startdato og fortsetter til en angitt sluttdato. Tabellen inneholder alle primære merkede kolonner og alle tidsrelaterte kolonner.

Denne funksjonen er egnet til å overføres som et filter til CALCULATE-funksjonen. Bruk det til å filtrere et uttrykk etter et egendefinert datoområde.

Notat

Hvis du arbeider med standard datointervaller, for eksempel dager, måneder, kvartaler eller år, bruker du funksjonen som passer bedre DATESINPERIOD .

Syntaks

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

Parametere

Vilkår Definisjon
dates or calendar En kolonne som inneholder datoer eller en kalenderreferanse
StartDate Et dato/dag-uttrykk. Hvis du bruker kalendersyntaks, bruker du samme datatype som primærkolonnen som er merket til Dag-kategorien.
EndDate Et dato/dag-uttrykk. Hvis du bruker kalendersyntaks, bruker du samme datatype som primærkolonnen som er merket til Dag-kategorien.

Returverdi

For inndata for datokolonne, en tabell som inneholder én kolonne med datoverdier.
For kalenderinndata, en tabell som inneholder alle primærkodede kolonner og alle tidsrelaterte kolonner.

Merknader

  • I det vanligste brukstilfellet er dates en referanse til datokolonnen i en merket datotabell.

  • Hvis StartDate er BLANK, er den StartDate tidligste verdien i dates kolonnen. For kalenderen er det den første verdien i en kolonne som er merket som dag.

  • Hvis EndDate det er BLANKdet, er den EndDate nyeste dates verdien i kolonnen. For kalenderen er det den siste verdien i en kolonne som er merket som dag.

  • Datoer som brukes som StartDate og EndDate er inkludert. Hvis verdien for eksempel StartDate er 1. juli 2019, inkluderes denne datoen i den returnerte tabellen (forutsatt at datoen finnes i dates kolonnen).

  • For datokolonneinndata kan den returnerte tabellen bare inneholde datoer som er lagret i Dates kolonnen. Hvis kolonnen for eksempel Dates starter fra 1. juli 2017 og StartDate verdien er 1. juli 2016, starter den returnerte tabellen fra 1. juli 2017.

  • Hvis inndatadatoen for kalenderen ikke finnes i den merkede dagkolonnen, behandles den som BLANK, og den første eller siste verdien brukes.

  • Bruk samme datatype og format som den kodede dagkolonnen for startdato og sluttdato for kalenderinndata. Hvis kolonnen for eksempel bruker formatet YYYY-Sn-Qn-Mnn-Wnn-Dnn (f.eks. "2014-S2-Q4-M11-W45-D03"), må startdatoen og sluttdatoen følge samme format (for eksempel "2015-S2-Q4-M11-W45-D03"). Ellers er virkemåten udefinert.

  • Denne funksjonen støttes ikke for bruk i DirectQuery-modus når den brukes i beregnede kolonner eller regler for sikkerhet på radnivå (RLS).

Eksempel

Følgende Måldefinisjon for salg tabell bruker DATESBETWEEN-funksjonen til å produsere en hittil i (LTD). Levetid til dags dato representerer akkumuleringen av et mål over tid siden begynnelsen av tiden.

Formelen bruker MAX funksjonen. Denne funksjonen returnerer den siste datoen som er i filterkonteksten. Så DATESBETWEEN-funksjonen returnerer en tabell med datoer som begynner fra den tidligste datoen til den siste datoen som rapporteres.

Eksempler i denne artikkelen kan brukes med eksempelmodellen Adventure Works DW 2020 Power BI Desktop. Hvis du vil ha modellen, kan du se DAX eksempelmodell.

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

Tenk på at den tidligste datoen som er lagret i Dato-tabellen, er 1. juli 2017. Så når en rapport filtrerer målet innen juni måned 2020, returnerer DATESBETWEEN-funksjonen et datointervall fra 1. juli 2017 til 30. juni 2020.

Eksempel på kalenderbasert tidsintelligens

Følgende Måldefinisjon for salg tabell bruker DATESBETWEEN-funksjonen til å produsere en hittil i (LTD). Levetid til dags dato representerer akkumuleringen av et mål over tid siden begynnelsen av tiden.

Formelen bruker MAX funksjonen. Denne funksjonen returnerer den maksimale datonøkkelen som er i filterkonteksten. Så DATESBETWEEN-funksjonen returnerer en tabell med datoer som begynner fra den tidligste datoen til den siste datoen som rapporteres. Vi bruker DateKey som et eksempel for å vise at «Dag»-kategorien kan merkes med en kolonne som ikke er datoskrevet.

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