DATESBETWEEN

Van toepassing op:berekende kolomberekende tabelMetingVisuele berekening

Notitie

Deze functie wordt afgeraden voor gebruik in visuele berekeningen omdat deze waarschijnlijk betekenisloze resultaten oplevert.

Retourneert voor datumkolominvoer een tabel die een kolom met datums bevat die begint met een opgegeven begindatum en doorgaat tot een opgegeven einddatum.

Voor agenda-invoer wordt een tabel geretourneerd die begint met een opgegeven begindatum en doorgaat tot een opgegeven einddatum. De tabel bevat alle primaire gelabelde kolommen en alle tijd gerelateerde kolommen.

Deze functie is geschikt om als filter door te geven aan de CALCULATE functie. Gebruik deze om een expressie te filteren op een aangepast datumbereik.

Notitie

Als u werkt met standaarddatumintervallen zoals dagen, maanden, kwartalen of jaren, gebruikt u de beter geschikte DATESINPERIOD functie.

Syntaxis

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

Parameters

Term Definitie
dates or calendar Een kolom die datums of een kalenderreferentie bevat
StartDate Een datum/dag-expressie. Als u de syntaxis van de agenda gebruikt, gebruikt u hetzelfde gegevenstype als de primaire kolom die is getagd aan de categorie Dag.
EndDate Een datum/dag-expressie. Als u de syntaxis van de agenda gebruikt, gebruikt u hetzelfde gegevenstype als de primaire kolom die is getagd aan de categorie Dag.

Retourwaarde

Voor datumkolominvoer is een tabel met één kolom met datumwaarden.
Voor agenda-invoer, een tabel die alle primaire gelabelde kolommen en alle tijd gerelateerde kolommen bevat.

Opmerkingen

  • In het meest voorkomende gebruiksvoorbeeld is dates een verwijzing naar de datumkolom van een gemarkeerde datumtabel.

  • Als StartDate dat het is BLANK, is dit StartDate de vroegste waarde in de dates kolom. Voor agenda is dit de eerste waarde in een kolom die is gelabeld als dag.

  • Als EndDate dat het is BLANK, is dit EndDate de meest recente waarde in de dates kolom. Voor agenda is dit de laatste waarde in een kolom die is gelabeld als dag.

  • Datums die worden gebruikt als de StartDate en EndDate zijn inclusief. Als de StartDate waarde bijvoorbeeld 1 juli 2019 is, wordt die datum opgenomen in de geretourneerde tabel (mits de datum in de dates kolom voorkomt).

  • Voor datumkolominvoer kan de geretourneerde tabel alleen datums bevatten die zijn opgeslagen in de Dates kolom. Als de Dates kolom bijvoorbeeld begint vanaf 1 juli 2017 en de StartDate waarde 1 juli 2016 is, begint de geretourneerde tabel vanaf 1 juli 2017.

  • Als de invoerdatum niet wordt gevonden in de kolom met gelabelde dagen, wordt deze behandeld als BLANKen wordt de eerste of laatste waarde gebruikt voor agenda-invoer.

  • Voor agenda-invoer gebruikt u hetzelfde gegevenstype en dezelfde notatie als de kolom met gelabelde dagen voor de begin- en einddatum. Als de kolom bijvoorbeeld de notatie JJJJ-Sn-Qn-Mnn-Wnn-Dnn gebruikt (bijvoorbeeld '2014-S2-Q4-M11-W45-D03'), moet de begin- en einddatum dezelfde notatie hebben (bijvoorbeeld '2015-S2-Q4-M11-W45-D03'). Anders is het gedrag niet gedefinieerd.

  • Deze functie wordt niet ondersteund voor gebruik in de DirectQuery-modus wanneer deze wordt gebruikt in regels voor beveiliging op rijniveau (berekende kolommen of beveiliging op rijniveau).

Voorbeeld

In de volgende definitie van Sales tabelmeting wordt de functie DATESBETWEEN gebruikt om een berekening van levensduur tot heden te produceren (LTD). Levensduur tot heden vertegenwoordigt de accumulatie van een meting in de loop van de tijd sinds het begin van de tijd.

De formule maakt gebruik van de MAX functie. Deze functie retourneert de laatste datum die zich in de filtercontext bevindt. De functie DATESBETWEEN retourneert dus een tabel met datums vanaf de vroegste datum tot de laatste datum die wordt gerapporteerd.

Voorbeelden in dit artikel kunnen worden gebruikt met het voorbeeldmodel Adventure Works DW 2020 Power BI Desktop. Zie DAX voorbeeldmodelom het model op te halen.

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

Houd er rekening mee dat de vroegste datum die is opgeslagen in de tabel Datum 1 juli 2017 is. Dus wanneer een rapport de meting filtert op de maand juni 2020, retourneert de functie DATESBETWEEN een datumbereik van 1 juli 2017 tot 30 juni 2020.

Voorbeeld voor tijdintelligentie op basis van agenda

In de volgende definitie van Sales tabelmeting wordt de functie DATESBETWEEN gebruikt om een berekening van levensduur tot heden te produceren (LTD). Levensduur tot heden vertegenwoordigt de accumulatie van een meting in de loop van de tijd sinds het begin van de tijd.

De formule maakt gebruik van de MAX functie. Deze functie retourneert de maximale datumsleutel die zich in de filtercontext bevindt. De functie DATESBETWEEN retourneert dus een tabel met datums vanaf de vroegste datum tot de laatste datum die wordt gerapporteerd. We gebruiken DateKey als voorbeeld om aan te geven dat de categorie Dag kan worden gelabeld met een kolom die niet is getypt op datum.

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