Læs på engelsk

Del via


OFFSET

gælder for:beregnet kolonneberegnet tabelMeasurevisualiseringsberegning

Returnerer en enkelt række, der er placeret før or efter den aktuelle række i den samme tabel af en given offset. If den aktuelle række ikke kan udledes til en enkelt række, returneres der muligvis flere rækker.

Syntaks

OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Parametre

Udtryk Definition
delta Antallet af rækker før (negativ value) or efter (positiv value) den aktuelle række, som dataene skal hentes fra. Det kan være et hvilket som helst DAX udtryk, der returnerer en skalar value.
relation (Valgfrit) Et tabeludtryk, som outputrækken returneres fra.
If angivet, skal all kolonner i partitionBy komme fra den or en related tabel.
If udeladt:
- orderBy skal angives eksplicit.
– AllorderByandpartitionBy udtryk skal være fuldt kvalificerede kolonnenavne, and kommer fra en enkelt tabel.
– ALLSELECTED() af all kolonner i orderByandpartitionBysom standard.
axis (Valgfrit) En akse i visualiseringsfiguren. and er kun tilgængelig i visuelle beregninger og erstatter relation.
orderBy (Valgfrit) En ORDERBY()-delsætning, der indeholder de udtryk, der define, hvordan hver partition sorteres.
If udeladt:
- relation skal angives eksplicit.
– Sorteres som standard efter hver kolonne i relation, der allerede er not angivet i partitionBy.
blanks (Valgfrit) En optælling, der definerer, hvordan du håndterer blankvalues ved sortering.
Denne parameter er reserveret til fremtidig brug.
I øjeblikket er den eneste understøttede valueDEFAULT, hvor funktionsmåden for numeriske values er blankvalues sorteres mellem nul and negative values. Funktionsmåden for strenge er blankvalues sorteres før all strenge, herunder tomme strenge.
partitionBy (Valgfrit) En PARTITIONBY() delsætning, der indeholder de kolonner, der define, hvordan relation partitioneres.
If udelades, behandles relation som en enkelt partition.
matchBy (Valgfrit) En MATCHBY() delsætning, der indeholder de kolonner, der define, hvordan data skal matche and identificere den aktuelle række.
reset (Valgfrit) Kun tilgængelig i visuelle beregninger. Angiverif beregningen nulstilles, and på hvilket niveau i den visuelle figurs kolonnehierarki. Accepterede values er: NONE, LOWESTPARENT, HIGHESTPARENTor et heltal. Funktionsmåden afhænger af heltalet sign:
- If nul or udeladt, nulstilles beregningen not. Svarer til NONE.
– If positiv, identificerer heltalet kolonnen med start fra den højeste, uafhængig af detaljering. HIGHESTPARENT svarer til 1.
– If negativ, identificerer heltalet kolonnen med start fra det laveste i forhold til den aktuelle detaljering. LOWESTPARENT svarer til -1.

Returner value

En or flere rækker fra relation.

Bemærkninger

Except for kolonner, der tilføjes af DAX tabelfunktioner, skal hver kolonne i relation, når matchBy er not til stede, or hver kolonne i matchByandpartitionBy, når matchBy er til stede, have en tilsvarende ydre value for at hjælpe med at define den aktuelle række, der skal arbejdes på, med følgende funktionsmåde:

  • If der er nøjagtigt én tilsvarende ydre kolonne, bruges dens value.
  • If der ikke er nogen tilsvarende ydre kolonne, så:
    • OFFSET bestemmer firstall kolonner, der ikke har en tilsvarende ydre kolonne.
    • For hver kombination af eksisterende values for disse kolonner i OFFSEToverordnede kontekst evalueres OFFSETand en række returneres.
    • OFFSETendelige output er en union af disse rækker.
  • If der er mere end én tilsvarende ydre kolonne, returneres der en error.

If all af relation's kolonner blev tilføjet af DAX tabelfunktioner, returneres der en error.

If matchBy er til stede, forsøger OFFSET at bruge matchByandpartitionBy kolonner til at identificere rækken.
If matchBy findes notand de kolonner, der er angivet i orderByandpartitionBy, ikke entydigt kan identificere hver række i relation, og derefter:

  • OFFSET forsøger at find det mindste antal ekstra kolonner, der kræves for entydigt at identificere hver række.
  • If disse kolonner findes, føjer OFFSET automatisk disse nye kolonner til orderBy, and hver partition sorteres ved hjælp af dette nye sæt OrderBy kolonner.
  • If sådanne kolonner ikke blev fundet, returneres der en error.

Der returneres en tom tabel if:

  • Den tilsvarende ydre value af en OrderByorPartitionBy kolonne findes not i relation.
  • Den deltavalue medfører et skift til en række, der not findes i partitionen.

If OFFSET bruges i en beregnet kolonne, der er defineret i den samme tabel som relation, andorderBy udelades, returneres der en error.

reset kun kan bruges i visuelle beregninger, kan and ikke bruges sammen med orderByorpartitionBy. If reset findes, kan axis angives, men relation kan ikke.

Eksempel 1 – beregnet kolonne

Følgende DAX forespørgsel:

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 tabel, der opsummerer det samlede salg for hver product kategori andcalendaryearsamt det samlede salg for den pågældende kategori i previousyear.

Eksempel 2 – measure

Følgende DAX forespørgsel:

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]
)

Bruger OFFSET() i en measure til at returnere en tabel, der opsummerer det samlede salg for hver calendaryearand det samlede salg for previousyear.

Eksempel 3 – beregnet kolonne

Følgende DAX forespørgsel:

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 tabellen FactInternetSales med tilføjelse af en kolonne, som angiver dets previous salgsbeløb for det samme producti faldende rækkefølge efter salgsbeløb, hvor det aktuelle salg identificeres af dets SalesOrderNumber and SalesOrderLineNumber. Uden MATCHBYreturnerer forespørgslen en error, da der ikke er nogen nøglekolonner i tabellen FactInternetSales.

Eksempel 4 – visuel beregning

Følgende visualiseringsberegning DAX forespørgsel:

SalesRelativeToPreviousMonth = [SalesAmount] - CALCULATE(SUM([SalesAmount]), OFFSET(-1, ROWS, HIGHESTPARENT))

Returnerer forskellen i det samlede salg mellem hver monthand den previous inden for samme year.

Skærmbilledet nedenfor viser den visuelle matrix and det visuelle beregningsudtryk:

DAX visualiseringsberegning

INDEX
ORDERBY
PARTITIONBY
MATCHBY
WINDOW
RANK
ROWNUMBER