ALKU
Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMittayksikköVisuaalinen laskenta -
Palauttaa yksittäisen rivin, joka sijoitetaan joko ennen nykyistä riviä tai sen jälkeen samaan taulukkoon annetun siirtymän mukaan. Jos nykyistä riviä ei voi päätellä yhdelle riville, saatetaan palauttaa useita rivejä.
OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Termi | Määritelmä |
---|---|
delta |
Rivien määrä ennen (negatiivinen arvo) tai sen jälkeen (positiivinen arvo) nykyistä riviä, jolta tiedot hankittava. Se voi olla mikä tahansa DAX-lauseke, joka palauttaa skalaariarvon. |
relation |
(Valinnainen) Taulukkolauseke, josta tulosterivi palautetaan.
Jos on määritetty, kaikkien partitionBy sarakkeiden on oltava peräisin siitä tai liittyvästä taulukosta.
Jos jätetään pois: - orderBy on määritettävä eksplisiittisesti.– Kaikkien orderBy - ja partitionBy -lausekkeiden on oltava sarakkeiden täydelliset nimet, ja niiden on oltava peräisin yksittäisestä taulukosta.
– orderBy ja partitionBy sarakkeiden oletusarvo on ALLSELECTED(). |
axis |
(Valinnainen) Akseli visuaalisessa muodossa. Käytettävissä vain visuaalisissa laskutoimituksissa, ja se korvaa relation . |
orderBy |
(Valinnainen) ORDERBY()-lause, joka sisältää lausekkeet, jotka määrittävät kunkin osion lajittelutavan.
Jos jätetään pois: - relation on määritettävä eksplisiittisesti.
: tämä määrittää oletusarvoisesti järjestyksen relation jokaisen sarakkeen mukaan, mitä ei ole vielä määritetty partitionBy . |
blanks |
(Valinnainen) Luettelointi, joka määrittää, miten tyhjiä arvoja käsitellään lajittelun aikana.
Tämä parametri on varattu tulevaa käyttöä varten. Tällä hetkellä ainoa tuettu arvo on DEFAULT, jossa numeeristen arvojen toiminta on tyhjä. Negatiiviset ja nollien arvot järjestetään. Merkkijonojen toimintatapa on se, että tyhjät arvot järjestetään ennen kaikkia merkkijonoja, myös tyhjiä merkkijonoja. |
partitionBy |
(Valinnainen) PARTITIONBY()-lause, joka sisältää sarakkeet, jotka määrittävät, miten relation ositetaan.
Jos tämä jätetään pois, relation käsitellään yksittäisenä osiona. |
matchBy |
(Valinnainen) MATCHBY()-lause, joka sisältää sarakkeet, jotka määrittävät, miten tiedot vastaavat ja tunnistavat nykyisen rivin. |
reset |
(Valinnainen) Käytettävissä vain visualisoinnin laskutoimituksissa. Ilmaisee, nollataanko laskutoimitus ja millä tasolla visualisoinnin muodon sarakehierarkia on. Hyväksytyt arvot ovat: NONE, LOWESTPARENT, HIGHESTPARENT tai kokonaisluku. Toiminta riippuu kokonaislukumerkistä: – Jos nolla tai jätetään pois, laskelmaa ei nollata. Vastaa NONE-funktiota. – Jos se on positiivinen, kokonaisluku tunnistaa sarakkeen aloittaen suurimmasta, viljasta riippumatta. HIGHESTPARENT vastaa lukua 1. – Jos se on negatiivinen, kokonaisluku tunnistaa sarakkeen aloittaen pienimmästä tasosta suhteessa nykyiseen rakeeseen. LOWESTPARENT vastaa lukua -1. |
Yksi tai useampi rivi relation
.
DAX-taulukkofunktioiden lisäämiä sarakkeita lukuun ottamatta jokaisella sarakkeella relation
, kun matchBy
ei ole, tai kullakin sarakkeella matchBy
ja partitionBy
, kun matchBy
on olemassa, on oltava vastaava ulompi arvo, joka auttaa määrittämään nykyisen rivin, jolle toiminto suoritetaan:
- Jos ulompaa saraketta on täsmälleen yksi vastaava, käytetään sen arvoa.
- Jos vastaavaa ulkosaraketta ei ole, toimi seuraavasti:
- OFFSET määrittää ensin kaikki sarakkeet, joilla ei ole vastaavaa ulompaa saraketta.
- Offset-siirtymä lasketaan näiden sarakkeiden jokaisen olemassa olevien arvojen yhdistelmän osalta pääkontekstissa ja palautetaan rivi.
- OFFSET-siirtymän lopullinen tulos on näiden rivien liitto.
- Jos vastaavia ulkosarakkeita on useampi kuin yksi, palautetaan virhe.
Jos DAX-taulukkofunktiot lisäävät kaikki relation
sarakkeisiin, palautetaan virhe.
Jos käytössä on matchBy
, OFFSET yrittää käyttää matchBy
ja partitionBy
sarakkeita rivin tunnistamiseen.
Jos matchBy
ei ole olemassa ja orderBy
ja partitionBy
määritetyt sarakkeet eivät pysty yksilöivästi tunnistamaan jokaista relation
riviä, niin:
- OFFSET yrittää löytää vähiten lisäsarakkeita, joita jokaisen rivin yksilöiminen edellyttää.
- Jos tällaisia sarakkeita löytyy, OFFSET liittää nämä uudet sarakkeet automaattisesti
orderBy
, ja kukin osio lajitellaan käyttämällä tätä uutta OrderBy-sarakkeiden joukkoa. - Jos tällaisia sarakkeita ei löydy, palautetaan virhe.
Palautetaan tyhjä taulukko, jos:
- OrderBy- tai PartitionBy-sarakkeen vastaavaa ulkoarvoa ei ole
relation
. -
delta
arvo siirtää riviin, jota ei ole osiossa.
Jos OFFSET-funktiota käytetään lasketussa sarakkeessa, joka on määritetty samassa taulukossa, jossa relation
, ja orderBy
jätetään pois, palautetaan virhe.
reset
voi käyttää vain visuaalisissa laskutoimituksissa, eikä sitä voi käyttää yhdessä orderBy
tai partitionBy
kanssa. Jos käytössä on reset
, axis
voidaan määrittää, mutta relation
ei.
Seuraava DAX-kysely:
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 kunkin tuoteluokan ja kalenterivuoden kokonaismyynnistä sekä kyseisen luokan kokonaismyynnistä edellisenä vuonna.
Seuraava DAX-kysely:
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ää mittarissa OFFSET()-funktiota palauttamaan taulukon, joka tekee yhteenvedon kunkin kalenterivuoden kokonaismyynnistä ja edellisen vuoden kokonaismyynnistä.
Seuraava DAX-kysely:
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 saman tuotteen edellisen myynnin määrän laskevassa myyntijärjestyksessä siten, että sen SalesOrderNumber- ja SalesOrderLineNumber-arvot tunnistavat nykyisen myynnin. Ilman MATCHBY:ta kysely palauttaisi virheen, koska FactInternetSales-taulukossa ei ole avainsarakkeita.
Seuraava visuaalisen laskutoimituksen DAX-kysely:
SalesRelativeToPreviousMonth = [SalesAmount] - CALCULATE(SUM([SalesAmount]), OFFSET(-1, ROWS, HIGHESTPARENT))
Palauttaa kunkin kuukauden ja edellisen kuukauden kokonaismyynnin eron samana vuonna.
Alla olevassa näyttökuvassa näytetään visuaalinen matriisi ja visuaalinen laskentalauseke:
DAX