OFFSET
Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMeasureVisuaalinen laskutoimitus
Palauttaa yksittäisen rivin, joka sijoitetaan jo ennen or sen jälkeen, kun nykyinen rivi samaan taulukkoon annetun offsetmukaan. If nykyistä riviä ei voi päätellä yksittäiseksi riviksi, saatetaan palauttaa useita rivejä.
Syntaksi
OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametrit
Termi | Määritelmä |
---|---|
delta |
Aiempien rivien määrä (negatiivinen value) or jälkeen (positiivinen value) nykyisen rivin, jolta tiedot hankittava. Se voi olla mikä tahansa DAX lauseke, joka palauttaa skalaarilausekkeen value. |
relation |
(Valinnainen) Taulukkolauseke, josta tulosterivi palautetaan. määritetyn If partitionBy sarakkeiden all on tultava siitä, orrelated taulukko.
If jätetään pois: - orderBy on määritettävä eksplisiittisesti.– All orderBy andpartitionBy lausekkeiden on oltava täydellisiä sarakkeiden nimiä, and ne ovat peräisin yksittäisestä taulukosta.
: all sarakkeiden oletusarvo on ALLSELECTED() orderBy andpartitionBy . |
axis |
(Valinnainen) Akseli visuaalisessa muodossa. Käytettävissä vain visualisoinnin laskutoimituksissa, and korvaa relation . |
orderBy |
(Valinnainen) ORDERBY()-lause, joka sisältää lausekkeet, jotka define kunkin osion lajittelutavan.
If jätetään pois: - relation on määritettävä eksplisiittisesti.
: tämä määrittää oletusarvoisesti järjestyksen relation jokaisen sarakkeen mukaan, not on jo määritetty partitionBy . |
blanks |
(Valinnainen) Luettelointi, joka määrittää, miten blankvalues käsitellään lajittelun aikana.
Tämä parametri on varattu tulevaa käyttöä varten. Tällä hetkellä ainoa tuettu value on DEFAULT , jossa numeerisen values toiminta on blankvalues järjestetään nollan and negatiivisen valuesvälillä. Merkkijonojen toiminta on blankvalues järjestetään ennen all merkkijonoja, mukaan lukien tyhjät merkkijonot. |
partitionBy |
(Valinnainen) PARTITIONBY()-lause, joka sisältää sarakkeet, jotka definerelation ositusta.
If jätetään pois, relation käsitellään yksittäisenä osiona. |
matchBy |
(Valinnainen) MATCHBY()-lause, joka sisältää sarakkeet, jotka define tietojen vastaavuuden and tunnistaa nykyisen rivin. |
reset |
(Valinnainen) Käytettävissä vain visualisoinnin laskutoimituksissa. Ilmaisee, if laskutoimitus nollautuu and millä tasolla visualisoinnin muodon sarakehierarkiaa käytetään. Hyväksyttyjä values ovat seuraavat: NONE , LOWESTPARENT , HIGHESTPARENT , or kokonaisluku. Toiminta riippuu kokonaisluku-sign: – If nolla or pois jätettäestä, laskutoimitusta ei not nollata. Vastaa NONE .
– If positiivinen, kokonaisluku tunnistaa sarakkeen aloittaen suurimmasta, viljasta riippumatta. HIGHESTPARENT vastaa lukua 1.
– If negatiivinen, kokonaisluku tunnistaa sarakkeen aloittaen pienimmästä tasosta suhteessa nykyiseen rakeeseen. LOWESTPARENT vastaa lukua -1. |
Palauta value
Yksi or lisää rivejä relation
.
Huomautuksia
Except
DAX taulukkofunktioiden lisäämille sarakkeille, joista kullakin sarakkeella relation
, kun matchBy
on not, or kutakin saraketta matchBy
andpartitionBy
, kun matchBy
on olemassa, on oltava vastaava ulkoinen value, joka auttaa define nykyistä toimivaa riviä seuraavasti:
- If ulompia sarakkeita on tarkalleen yksi, sen value käytetään.
-
If vastaavaa ulkosaraketta ei ole, ja sitten:
- OFFSET määrittää firstall sarakkeet, joissa ei ole vastaavaa ulompaa saraketta.
- Näiden sarakkeiden jokaisen olemassa olevan values yhdistelmän OFFSETpääkontekstissa OFFSET arvioidaan, and rivi palautetaan.
- OFFSETlopullinen tulos on näiden rivien union.
- If ulompia sarakkeita on useampi kuin yksi, palautetaan error.
DAX taulukkofunktiot lisäsivät relation
sarakkeiden Ifall, palautetaan error.
If
matchBy
on olemassa, OFFSET yrittää käyttää matchBy
andpartitionBy
sarakkeita rivin tunnistamiseen.
If
matchBy
on not käytössä, andorderBy
andpartitionBy
määritetyt sarakkeet eivät pysty yksilöivästi tunnistamaan jokaista relation
riviä, sitten:
- OFFSET yrittää find jokaisen rivin yksilöimiseen vähiten lisäsarakkeita.
-
If tällaisia sarakkeita löytyy, OFFSET liittää nämä uudet sarakkeet automaattisesti
orderBy
, and kukin osio lajitellaan käyttämällä tätä uutta OrderBy-sarakkeiden joukkoa. - If tällaisia sarakkeita ei löydy, palautetaan error.
Palautetaan tyhjä taulukko if:
-
OrderBy
or
PartitionBy-sarakkeen vastaava ulko-valuenot ole
relation
sisällä. -
delta
value siirtää riviin, jota ei not olla osiossa.
If
OFFSET käytetään lasketussa sarakkeessa, joka on määritetty samassa taulukossa, jossa relation
, andorderBy
jätetään pois, palautetaan error.
reset
voi käyttää vain visuaalisissa laskutoimituksissa, and ei voi käyttää yhdessä orderBy
orpartitionBy
kanssa.
If
reset
on olemassa, voidaan määrittää axis
mutta relation
ei.
Esimerkki 1 – laskettu sarake
Seuraava kyselyn DAX:
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]
)
)
Palauttaa taulukon, jossa on yhteenveto jokaisen product luokan kokonaismyynnistä andcalendaryearsekä tämän luokan kokonaismyynnistä previousyear.
Esimerkki 2 – measure
Seuraava kyselyn DAX:
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]
)
Käyttää OFFSET() measure palauttamaan taulukon, joka tekee yhteenvedon jokaisen calendaryearandpreviousyearkokonaismyynnin.
Esimerkki 3 – laskettu sarake
Seuraava kyselyn DAX:
EVALUATE
ADDCOLUMNS (
FactInternetSales,
"Previous Sales Amount",
SELECTCOLUMNS (
OFFSET (
-1,
FactInternetSales,
ORDERBY ( FactInternetSales[SalesAmount], DESC ),
PARTITIONBY ( FactInternetSales[ProductKey] ),
MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] )
),
FactInternetSales[SalesAmount]
)
)
Palauttaa FactInternetSales-taulukon lisäämällä sarakkeen, joka ilmaisee kullekin myynnille sen previous myyntisumman samalle productlaskevassa myyntijärjestyksessä siten, että sen SalesOrderNumber-and SalesOrderLineNumber tunnistaa nykyisen myynnin. Ilman MATCHBYkysely palauttaisi error, koska FactInternetSales-taulukossa ei ole avainsarakkeita.
Esimerkki 4 – visuaalinen laskutoimitus
Seuraava visuaalisen laskutoimituksen DAX kysely:
SalesRelativeToPreviousMonth = [SalesAmount] - CALCULATE(SUM([SalesAmount]), OFFSET(-1, ROWS, HIGHESTPARENT))
Palauttaa kokonaismyynnin eron kunkin monthandprevious välillä samassa yearsisällä.
Alla olevassa näyttökuvassa näkyy visuaalisen matriisin and visuaalinen laskentalauseke: