Obs!
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Gjelder for:Beregnet kolonne
Beregnet tabell
Måle
Visuell beregning
Returnerer flere rader som er plassert innenfor det angitte intervallet.
Syntaks
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametere
Vilkår | Definisjon |
---|---|
from |
Angir hvor vinduet starter. Det kan være et hvilket som helst DAX uttrykk som returnerer en skalarverdi.
Virkemåten avhenger av from_type -parameteren: – Hvis from_type er REL, antall rader som skal gå tilbake (negativ verdi) eller fremover (positiv verdi) fra gjeldende rad for å få den første raden i vinduet.
– Hvis from_type er ABS, og from er positiv, er det posisjonen til starten av vinduet fra begynnelsen av partisjonen. Indeksering er 1-basert og 0 tolkes som 1. 0 og 1 betyr for eksempel at vinduet starter fra begynnelsen av partisjonen. Hvis from er negativ, er det posisjonen til starten av vinduet fra slutten av partisjonen. -1 betyr den siste raden i partisjonen. |
from_type |
Endrer virkemåten til from -parameteren. Mulige verdier er ABS (absolutt) og REL (relativ). Standard er REL. |
to |
Samme som from , men angir slutten av vinduet. Den siste raden er inkludert i vinduet. |
to_type |
Samme som from_type , men endrer virkemåten til to . |
relation |
(Valgfritt) Et tabelluttrykk som utdataradene returneres fra. Hvis den brukes i visuelle beregninger, godtar denne parameteren en akse i den visuelle figuren.
Hvis angitt, må alle kolonnene i partitionBy komme fra den eller en relatert tabell.
Hvis utelatt: - orderBy må angis eksplisitt.– Alle orderBy - og partitionBy uttrykk må være fullstendige kolonnenavn og komme fra én enkelt tabell.
– standarder for ALLSELECTED() for alle kolonner i orderBy og partitionBy . |
orderBy |
(Valgfritt) En ORDERBY() setning som inneholder uttrykkene som definerer hvordan hver partisjon sorteres.
Hvis utelatt: - relation må angis eksplisitt.
– Standarder for bestilling av hver kolonne i relation som ikke allerede er angitt i partitionBy . |
blanks |
(Valgfritt) En opplisting som definerer hvordan du håndterer tomme verdier når du sorterer relation eller axis .
De støttede verdiene er:
Vær oppmerksom på at når parameteren blanks og tomrommene i ORDERBY() -funksjonen på individuelle uttrykk begge er angitt, blanks prioriteres det individuelle orderBy-uttrykket for det aktuelle orderBy-uttrykket, og orderBy-uttrykk uten blanks å bli angitt, vil overholde parameteren blanks på den overordnede funksjonen. |
partitionBy |
(Valgfritt) En PARTITIONBY() setningsdel som inneholder kolonnene som definerer hvordan relation partisjoneres. Hvis utelatt, behandles relation som én enkelt partisjon. |
matchBy |
(Valgfritt) En MATCHBY() setningsdel som inneholder kolonnene som definerer hvordan dataene skal samsvare og identifisere gjeldende rad. |
reset |
(Valgfritt) Bare tilgjengelig i visuelle beregninger. Angir om beregningen tilbakestilles, og på hvilket nivå i kolonnehierarkiet for visualobjektfiguren. Godtatte verdier er: en feltreferanse til en kolonne i gjeldende visuelle figur, NONE (standard), LOWESTPARENT , HIGHESTPARENT eller et heltall. Virkemåten avhenger av heltallstegnet: – Hvis null eller utelatt, tilbakestilles ikke beregningen. Tilsvarer NONE .
– Hvis det er positivt, identifiserer heltallet kolonnen fra den høyeste, uavhengige av korn. HIGHESTPARENT tilsvarer 1.
– Hvis negativt, identifiserer heltallet kolonnen fra det laveste, i forhold til gjeldende korn. LOWESTPARENT tilsvarer -1. |
Returverdi
Alle rader fra vinduet.
Merknader
Bortsett fra kolonner som legges til av DAX tabellfunksjoner, må hver kolonne i relation
, når matchBy
ikke finnes, eller hver kolonne i matchBy
og partitionBy
, når matchBy
finnes, ha en tilsvarende ytre verdi for å definere gjeldende rad som skal brukes. Hvis from_type
og to_type
begge har ABS, gjelder følgende bare for de partitionBy
kolonnene:
- Hvis det er nøyaktig én tilsvarende ytre kolonne, brukes verdien.
- Hvis det ikke finnes noen tilsvarende ytre kolonne:
- WINDOW bestemmer først alle kolonner som ikke har noen tilsvarende ytre kolonne.
- For hver kombinasjon av eksisterende verdier for disse kolonnene i WINDOWoverordnede kontekst, evalueres WINDOW, og de tilsvarende radene returneres.
- WINDOW endelige utdataene er en sammensluting av disse radene.
- Hvis det er mer enn én tilsvarende ytre kolonne, returneres en feil.
Hvis alle kolonnene i relation
ble lagt til av DAX tabellfunksjoner, returneres en feil.
Hvis matchBy
finnes, prøver WINDOW å bruke matchBy
og partitionBy
kolonner til å identifisere raden.
Hvis matchBy
ikke finnes, og kolonnene som er angitt i orderBy
og partitionBy
ikke kan identifisere hver rad i relation
unikt, så:
- WINDOW vil prøve å finne det minste antallet ekstra kolonner som kreves for å identifisere hver rad unikt.
- Hvis du finner slike kolonner, vil WINDOW automatisk tilføye disse nye kolonnene til
orderBy
, og hver partisjon sorteres ved hjelp av dette nye settet med orderBy-kolonner. - Hvis slike kolonner ikke blir funnet, returneres en feil.
En tom tabell returneres hvis:
- Den tilsvarende ytre verdien for en
orderBy
ellerpartitionBy
kolonne finnes ikke irelation
. - Hele vinduet er utenfor partisjonen, eller begynnelsen av vinduet er etter slutten.
Hvis WINDOW brukes i en beregnet kolonne som er definert i samme tabell som relation
, og orderBy
utelates, returneres en feil.
Hvis begynnelsen av vinduet viser seg å være før den første raden, er den satt til den første raden. På samme måte, hvis slutten av vinduet er etter den siste raden i partisjonen, er den satt til den siste raden.
reset
kan bare brukes i visuelle beregninger, og kan ikke brukes sammen med orderBy
eller partitionBy
. Hvis reset
finnes, kan axis
angis, men relation
kan ikke.
Hvis verdien av reset
er absolutt (dvs. et positivt heltall HIGHESTPARENT
eller en feltreferanse) og beregningen evalueres på eller over målnivået i hierarkiet, tilbakestilles beregningen for hvert enkelt element. Det vil eksempel: Funksjonen evalueres i en partisjon som bare inneholder det bestemte elementet.
Eksempel 1 – mål
Følgende mål:
3-day Average Price =
AVERAGEX(
WINDOW(
-2,REL,0,REL,
SUMMARIZE(ALLSELECTED('Sales'), 'Date'[Date], 'Product'[Product]),
ORDERBY('Date'[Date]),
KEEP,
PARTITIONBY('Product'[Product])
),
CALCULATE(AVERAGE(Sales[Unit Price]))
)
Returnerer 3-dagers gjennomsnittet av enhetspriser for hvert produkt. Vær oppmerksom på at 3-dagersvinduet består av tre dager der produktet har salg, ikke nødvendigvis tre påfølgende kalenderdager.
Eksempel 2 – mål
Følgende mål:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Returnerer løpende sum for totalt salg etter månedsnummer, og starter på nytt for hvert regnskapsår:
År | Månedsnummer for år | Salgsbeløp | Løpesummer |
---|---|---|---|
FY2018 | 1 | $1,327,675 | $1,327,675 |
FY2018 | 2 | $3,936,463 | KR 5 264 138 |
FY2018 | 3 | $700,873 | KR 5 965 011 |
FY2018 | 4 | $1,519,275 | $7,484,286 |
FY2018 | 5 | KR 2 960 378 | KR 10 444 664 |
FY2018 | 6 | $1,487,671 | KR 11 932 336 |
FY2018 | 7 | $1,423,357 | KR 13 355 693 |
FY2018 | 8 | KR 2 057 902 | $15,413,595 |
FY2018 | 9 | KR 2 523 948 | $17,937,543 |
FY2018 | 10 | $561,681 | KR 18 499 224 |
FY2018 | 11 | $4,764,920 | $23,264,145 |
FY2018 | 12 | $596,747 | $23,860,891 |
FY2019 | 1 | $1,847,692 | $1,847,692 |
FY2019 | 2 | $2,829,362 | $4,677,054 |
FY2019 | 3 | KR 2 092 434 | $6,769,488 |
FY2019 | 4 | $2,405,971 | KR 9 175 459 |
FY2019 | 5 | $3,459,444 | $12,634,903 |
FY2019 | 6 | KR 2 850 649 | $15,485,552 |
FY2019 | 7 | $2,939,691 | $18,425,243 |
FY2019 | 8 | $3,964,801 | KR 22 390 045 |
FY2019 | 9 | $3,287,606 | $25,677,650 |
FY2019 | 10 | KR 2 157 287 | KR 27 834 938 |
FY2019 | 11 | $3,611,092 | KR 31 446 030 |
FY2019 | 12 | KR 2 624 078 | KR 34 070 109 |
REGNSKAPSÅR2020 | 1 | $3,235,187 | $3,235,187 |
REGNSKAPSÅR2020 | 2 | KR 4 070 046 | $7,305,233 |
REGNSKAPSÅR2020 | 3 | $4,429,833 | KR 11 735 066 |
REGNSKAPSÅR2020 | 4 | KR 4 002 614 | $15,737,680 |
REGNSKAPSÅR2020 | 5 | $5,265,797 | KR 21 003 477 |
REGNSKAPSÅR2020 | 6 | $3,465,241 | KR 24 468 717 |
REGNSKAPSÅR2020 | 7 | $3,513,064 | $27,981,781 |
REGNSKAPSÅR2020 | 8 | $5,247,165 | KR 33 228 947 |
REGNSKAPSÅR2020 | 9 | KR 5 104 088 | KR 38 333 035 |
REGNSKAPSÅR2020 | 10 | $3,542,150 | $41,875,184 |
REGNSKAPSÅR2020 | 11 | KR 5 151 897 | KR 47 027 081 |
REGNSKAPSÅR2020 | 12 | $4,851,194 | $51,878,275 |
Eksempel 3 – visuell beregning
Følgende visuelle beregning DAX spørring:
TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount])
Returnerer det kumulative totale salget etter måned, beregnet sammen hvert år. Verdien 1 kan brukes i stedet HIGHESTPARENT
for , med samme resultat.
Skjermbildet nedenfor viser den visuelle matrisen og beregningsuttrykket for visualobjekter:
Eksempel 4 – visuell beregning
Følgende visuelle beregning DAX spørring:
TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])
Returnerer det kumulative totale salget etter måned, beregnet langs hvert kvartal.
Verdien LOWESTPARENT
kan brukes i stedet for -1, med samme resultat.
Relatert innhold
INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM