Del via


INDEX

gjelder:beregnet kolonneberegnet tabellMeasurevisualobjektberegning

Returnerer en rad i en absolutt posisjon, angitt av posisjonsparameteren, innenfor den angitte partisjonen, sortert etter den angitte rekkefølgen. If gjeldende partisjon ikke kan utledes til én enkelt partisjon, kan flere rader returneres.

Syntaks

INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Parametere

Vilkår Definisjon
position Den absolutte posisjonen (1-basert) som dataene hentes fra:
- position er positiv: 1 er first rad, 2 er second rad osv.
- position er negativ: -1 er last rad, -2 er secondlast rad osv.
Når position er utenfor grensen, or null, orBLANK(), INDEX returnerer en tom tabell. Det kan være et hvilket som helst DAX uttrykk som returnerer en skalar value.
relation (Valgfritt) Et tabelluttrykk som utdataene returneres fra.
If angitt, må all kolonner i partitionBy komme fra den or en related tabell.
If utelatt:
- orderBy må angis eksplisitt.
– AllorderByandpartitionBy uttrykk må være fullstendige kolonnenavn and kommer fra én enkelt tabell.
– standarder for ALLSELECTED() av all kolonner i orderByandpartitionBy.
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 valueDEFAULT, 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

En rad i en absolutt posisjon.

Merknader

Hver partitionByandmatchBy kolonne må ha en tilsvarende ytre value for å define den gjeldende partisjonen du vil bruke, med følgende virkemåte:

  • If det er nøyaktig én tilsvarende ytre kolonne, brukes value.
  • If det ikke finnes noen tilsvarende ytre kolonne:
    • INDEX vil first bestemme allpartitionByandmatchBy kolonner som ikke har noen tilsvarende ytre kolonne.
    • For hver kombinasjon av eksisterende values for disse kolonnene i INDEXoverordnede kontekst, evalueres INDEXand en rad returneres.
    • INDEXendelige utdata er en union av disse radene.
  • If det er mer enn én tilsvarende ytre kolonne, returneres en error.

If matchBy finnes, prøver INDEX å bruke matchByandpartitionBy kolonner til å identifisere raden. If matchBy finnes notand kolonnene som er angitt i orderByandpartitionBy, kan ikke identifisere hver rad i relationunikt:

  • INDEX vil prøve å find det minste antallet ekstra kolonner som kreves for å identifisere hver rad unikt.
  • If slike kolonner finnes, vil INDEX 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 PartitionBy kolonne finnes not i relation.
  • Den positionvalue refererer til en posisjon som not finnes i partisjonen.

If INDEX brukes i en beregnet kolonne som er definert i samme tabell som relationandorderBy utelates, returneres en error.

reset bare kan brukes i visuelle beregninger, kan and ikke brukes i kombinasjon med orderByorpartitionBy. If reset finnes, kan axis angis, men relation kan ikke.

Eksempel 1 – beregnet kolonne

Følgende DAX spørring:

EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))

Returnerer følgende tabell:

DimDate[CalendarYear]
2005

Eksempel 2 – beregnet kolonne

Følgende DAX spørring:

EVALUATE
SUMMARIZECOLUMNS (
    FactInternetSales[ProductKey],
    DimDate[MonthNumberOfYear],
    FILTER (
            VALUES(FactInternetSales[ProductKey]),
            [ProductKey] < 222
    ),
    "CurrentSales", SUM(FactInternetSales[SalesAmount]),
    "LastMonthSales",
    CALCULATE (
        SUM(FactInternetSales[SalesAmount]),
        INDEX(-1, ORDERBY(DimDate[MonthNumberOfYear]))
    )
)
ORDER BY [ProductKey], [MonthNumberOfYear]

Returnerer følgende tabell:

FactInternetSales[ProductKey] DimDate[MonthNumberOfYear] [CurrentSales] [LastMonthSales]
214 1 5423.45 8047.7
214 2 4968.58 8047.7
214 3 5598.4 8047.7
214 4 5073.55 8047.7
214 5 5248.5 8047.7
214 6 7487.86 8047.7
214 7 7382.89 8047.7
214 8 6543.13 8047.7
214 9 6788.06 8047.7
214 10 6858.04 8047.7
214 11 8607.54 8047.7
214 12 8047.7 8047.7
217 1 5353.47 7767.78
217 2 4268.78 7767.78
217 3 5773.35 7767.78
217 4 5738.36 7767.78
217 5 6158.24 7767.78
217 6 6998 7767.78
217 7 5563.41 7767.78
217 8 5913.31 7767.78
217 9 5913.31 7767.78
217 10 6823.05 7767.78
217 11 6683.09 7767.78
217 12 7767.78 7767.78

Eksempel 3 – visuell beregning

Følgende visuelle beregning DAX spørringer:

SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))

SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))

Forbedre en tabell slik at den contains, for hver month:
– det totale salgsbeløpet.
– forskjellen til firstmonth for de respektive year;
– and forskjellen til firstmonth for de respektive quarter.

Skjermbildet nedenfor viser den visuelle matrisen and det first visuelle beregningsuttrykket:

DAX beregning av visualobjekter

OFFSET ORDERBY PARTITIONBY WINDOW RANK ROWNUMBER