OFFSET
gjelder:beregnet kolonneberegnet tabellMeasurevisualobjektberegning
Returnerer en enkelt rad som er plassert enten før or etter gjeldende rad i samme tabell, med en gitt offset. If gjeldende rad ikke kan utledes til én rad, kan flere rader returneres.
Syntaks
OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametere
Vilkår | Definisjon |
---|---|
delta |
Antall rader før (negative value) or etter (positive value) gjeldende rad som dataene skal hentes fra. Det kan være et hvilket som helst DAX uttrykk som returnerer en skalar value. |
relation |
(Valgfritt) Et tabelluttrykk som utdataraden returneres fra.
If angitt, må all kolonner i partitionBy komme fra den or en related tabell.
If utelatt: - orderBy må angis eksplisitt.– All orderBy andpartitionBy uttrykk må være fullstendige kolonnenavn and kommer fra én enkelt tabell.
– standarder for ALLSELECTED() av all kolonner i orderBy andpartitionBy . |
axis |
(Valgfritt) En akse i den visuelle figuren.
and er bare tilgjengelig i visuelle beregninger, erstatter relation . |
orderBy |
(Valgfritt) En ORDERBY() setningsdel som inneholder uttrykkene som define hvordan hver partisjon sorteres.
If utelatt: - relation må angis eksplisitt.
– Standarder for å bestille etter hver kolonne i relation som allerede er not angitt i partitionBy . |
blanks |
(Valgfritt) En opplisting som definerer hvordan du håndterer blankvalues når du sorterer.
Denne parameteren er reservert for fremtidig bruk. Foreløpig er den eneste støttede value DEFAULT , der virkemåten for numeriske values er blankvalues ordnes mellom null and negativ values. Virkemåten for strenger er blankvalues ordnes før all strenger, inkludert tomme strenger. |
partitionBy |
(Valgfritt) En PARTITIONBY() setningsdel som inneholder kolonnene som define hvordan relation partisjoneres.
If utelatt, behandles relation som én enkelt partisjon. |
matchBy |
(Valgfritt) En MATCHBY() setningsdel som inneholder kolonnene som define hvordan data samsvarer and identifisere gjeldende rad. |
reset |
(Valgfritt) Bare tilgjengelig i visuelle beregninger. Angir if beregningen tilbakestilles, and på hvilket nivå i kolonnehierarkiet for visualobjektfiguren. Godtatt values er: en feltreferanse til en kolonne i gjeldende visuelle figur, NONE (standard), LOWESTPARENT , HIGHESTPARENT , or et heltall. Virkemåten avhenger av heltallet sign: - If null or utelatt, tilbakestilles beregningen not. Tilsvarer NONE .
– If positivt identifiserer heltallet kolonnen som starter fra den høyeste, uavhengige av korn. HIGHESTPARENT tilsvarer 1.
– If negativ, identifiserer heltallet kolonnen fra det laveste, i forhold til gjeldende korn. LOWESTPARENT tilsvarer -1. |
Returner value
Ett or flere rader fra relation
.
Merknader
Except for kolonner som legges til av DAX tabellfunksjoner, må hver kolonne i relation
, når matchBy
er not til stede, or hver kolonne i matchBy
andpartitionBy
, når matchBy
finnes, ha en tilsvarende ytre value for å define gjeldende rad som skal fungere, med følgende virkemåte:
- If det er nøyaktig én tilsvarende ytre kolonne, brukes value.
-
If det ikke finnes noen tilsvarende ytre kolonne, gjør du følgende:
- OFFSET vil first bestemme all kolonner som ikke har noen tilsvarende ytre kolonne.
- For hver kombinasjon av eksisterende values for disse kolonnene i OFFSEToverordnede kontekst, evalueres OFFSETand en rad returneres.
- OFFSETendelige utdata er en union av disse radene.
- If det er mer enn én tilsvarende ytre kolonne, returneres en error.
If
all av kolonnene i relation
ble lagt til av DAX tabellfunksjoner, returneres en error.
If
matchBy
finnes, prøver OFFSET å bruke matchBy
andpartitionBy
kolonner til å identifisere raden.
If
matchBy
finnes notand kolonnene som er angitt i orderBy
andpartitionBy
, kan ikke identifisere hver rad i relation
unikt, og deretter:
- OFFSET vil prøve å find det minste antallet ekstra kolonner som kreves for å identifisere hver rad unikt.
-
If slike kolonner finnes, vil OFFSET automatisk føye til disse nye kolonnene i
orderBy
, and hver partisjon sorteres ved hjelp av dette nye settet med OrderBy kolonner. - If slike kolonner ikke finnes, returneres en error.
En tom tabell returneres if:
- Den tilsvarende ytre value i en OrderByorPartitionBy kolonne finnes not i
relation
. - Den
delta
value fører til et skifte til en rad som not finnes i partisjonen.
If
OFFSET brukes i en beregnet kolonne som er definert i samme tabell som relation
, utelates andorderBy
, returneres en error.
reset
bare kan brukes i visuelle beregninger, kan and ikke brukes i kombinasjon med orderBy
orpartitionBy
.
If
reset
finnes, kan axis
angis, men relation
kan ikke.
Eksempel 1 – beregnet kolonne
Følgende DAX spørring:
DEFINE
VAR vRelation = SUMMARIZECOLUMNS (
DimProductCategory[EnglishProductCategoryName],
DimDate[CalendarYear],
"CurrentYearSales", SUM(FactInternetSales[SalesAmount])
)
EVALUATE
ADDCOLUMNS (
vRelation,
"PreviousYearSales",
SELECTCOLUMNS(
OFFSET (
-1,
vRelation,
ORDERBY([CalendarYear]),
PARTITIONBY([EnglishProductCategoryName])
),
[CurrentYearSales]
)
)
Returnerer en tabell som oppsummerer det totale salget for hver product kategori andcalendaryear, i tillegg til det totale salget for denne kategorien i previousyear.
Eksempel 2 - measure
Følgende DAX spørring:
DEFINE
MEASURE DimProduct[CurrentYearSales] = SUM(FactInternetSales[SalesAmount])
MEASURE DimProduct[PreviousYearSales] = CALCULATE(SUM(FactInternetSales[SalesAmount]), OFFSET(-1, , ORDERBY(DimDate[CalendarYear])))
EVALUATE
SUMMARIZECOLUMNS (
DimDate[CalendarYear],
"CurrentYearSales", DimProduct[CurrentYearSales],
"PreviousYearSales", DimProduct[PreviousYearSales]
)
Bruker OFFSET() i en measure til å returnere en tabell som oppsummerer det totale salget for hver calendaryearand det totale salget for previousyear.
Eksempel 3 – beregnet kolonne
Følgende DAX spørring:
EVALUATE
ADDCOLUMNS (
FactInternetSales,
"Previous Sales Amount",
SELECTCOLUMNS (
OFFSET (
-1,
FactInternetSales,
ORDERBY ( FactInternetSales[SalesAmount], DESC ),
PARTITIONBY ( FactInternetSales[ProductKey] ),
MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] )
),
FactInternetSales[SalesAmount]
)
)
Returnerer FactInternetSales-tabellen med å legge til en kolonne, som angir, for hvert salg, dets previous salgsbeløp, av samme product, i synkende rekkefølge av salgsbeløp, med gjeldende salg identifisert av SalesOrderNumber and SalesOrderLineNumber. Uten MATCHBYvil spørringen returnere en error siden det ikke er noen nøkkelkolonner i FactInternetSales-tabellen.
Eksempel 4 – visuell beregning
Følgende visuelle beregning DAX spørring:
SalesRelativeToPreviousMonth = [SalesAmount] - CALCULATE(SUM([SalesAmount]), OFFSET(-1, ROWS, HIGHESTPARENT))
Returnerer differansen i totalt salg mellom hver monthandprevious én innenfor samme year.
Skjermbildet nedenfor viser den visuelle matrisen and beregningsuttrykket for visualobjekter: