Jaa


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
IfpartitionBy sarakkeiden all on tultava siitä, orrelated taulukko.
If jätetään pois:
- orderBy on määritettävä eksplisiittisesti.
– AllorderByandpartitionBy lausekkeiden on oltava täydellisiä sarakkeiden nimiä, and ne ovat peräisin yksittäisestä taulukosta.
: all sarakkeiden oletusarvo on ALLSELECTED() orderByandpartitionBy.
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 matchByandpartitionBy, 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 relationsarakkeiden Ifall, palautetaan error.

If matchBy on olemassa, OFFSET yrittää käyttää matchByandpartitionBy sarakkeita rivin tunnistamiseen.
If matchBy on not käytössä, andorderByandpartitionBy määritetyt sarakkeet eivät pysty yksilöivästi tunnistamaan jokaista relationriviä, 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 relationsisä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ä orderByorpartitionBykanssa. 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:

DAX visuaalisen laskutoimituksen

INDEX
ORDERBY
PARTITIONBY
MATCHBY
WINDOW
RANK
ROWNUMBER