Del via


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, anbefales det at du bruker den beste DATESINPERIOD-funksjonen.

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 kalendersyntaks brukes, kan du bruke samme datatype som primærkolonnen som er merket til Dag-kategorien.
EndDate Et dato/dag-uttrykk. Hvis kalendersyntaks brukes, kan du bruke 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, blir StartDate den tidligste verdien i dates kolonnen. For kalenderen blir det den første verdien i kolonnen som er merket som dag.

  • Hvis EndDate er BLANK, vil EndDate være den nyeste verdien i dates kolonnen. For kalenderen blir det den siste verdien i kolonnen som er merket som dag.

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

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

  • Hvis inndatadatoen ikke finnes i den kodede dagkolonnen for kalenderinndata, behandles den som BLANK , og dermed brukes den første/siste verdien.

  • 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.

Legg merke til at 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.

Legg merke til at 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. DateKey brukes 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] ) )
)