Lezen in het Engels

Delen via


INDEX

Van toepassing op:berekende kolomberekende tabelMeasureVisuele berekening

Retourneert een rij op een absolute positie, opgegeven door de positieparameter, binnen de opgegeven partitie, gesorteerd op de opgegeven volgorde. If de huidige partitie niet kan worden afgeleid van één partitie, kunnen meerdere rijen worden geretourneerd.

Syntaxis

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

Parameters

Term Definitie
position De absolute positie (op basis van 1) waaruit de gegevens moeten worden opgehaald:
- position is positief: 1 is de first rij, 2 is de second rij, enzovoort.
- position is negatief: -1 is de last rij, -2 de secondlast rij, enzovoort.
Wanneer position buiten de grens valt, or nul, orBLANK(), INDEX retourneert een lege tabel. Dit kan elke DAX expressie zijn die een scalaire valueretourneert.
relation (Optioneel) Een tabelexpressie waaruit de uitvoer wordt geretourneerd.
If opgegeven, moeten all kolommen in partitionBy afkomstig zijn or een related tabel.
If weggelaten:
- orderBy moet expliciet worden opgegeven.
: AllorderByandpartitionBy expressies moeten volledig gekwalificeerde kolomnamen zijn and afkomstig zijn uit één tabel.
: standaard ingesteld op ALLSELECTED() van all kolommen in orderByandpartitionBy.
axis (Optioneel) Een as in de visuele shape. Alleen beschikbaar in visuele berekeningen, and vervangt relation.
orderBy (Optioneel) Een ORDERBY() component met de expressies die define hoe elke partitie wordt gesorteerd.
If weggelaten:
- relation moet expliciet worden opgegeven.
: standaard wordt elke kolom in relation gerangschikt die not al is opgegeven in partitionBy.
blanks (Optioneel) Een opsomming die definieert hoe blankvalues moet worden verwerkt bij het sorteren.
Deze parameter is gereserveerd voor toekomstig gebruik.
Momenteel wordt de enige ondersteunde valueDEFAULT, waarbij het gedrag voor numerieke values wordt blankvalues geordend tussen nul and negatieve values. Het gedrag voor tekenreeksen wordt blankvalues worden geordend voordat all tekenreeksen, inclusief lege tekenreeksen.
partitionBy (Optioneel) Een PARTITIONBY() component met de kolommen die define hoe relation wordt gepartitioneerd.
If weggelaten, wordt relation behandeld als één partitie.
matchBy (Optioneel) Een MATCHBY()-component met de kolommen die define hoe gegevens overeenkomen and de huidige rij identificeren.
reset (Optioneel) Alleen beschikbaar in visuele berekeningen. Hiermee wordt aangegeven if de berekening opnieuw wordt ingesteld and op welk niveau van de kolomhiërarchie van de visualshape. Geaccepteerde values zijn: NONE, LOWESTPARENT, HIGHESTPARENT, or een geheel getal. Het gedrag is afhankelijk van het gehele getal sign:
- If nul or weggelaten, wordt de berekening not opnieuw ingesteld. Gelijk aan NONE.
- If positief, identificeert het gehele getal de kolom die begint vanaf het hoogste, onafhankelijk van graan. HIGHESTPARENT is gelijk aan 1.
- If negatief, identificeert het gehele getal de kolom die begint vanaf het laagste getal ten opzichte van de huidige korrel. LOWESTPARENT is gelijk aan -1.

value retourneren

Een rij op een absolute positie.

Opmerkingen

Elke partitionByandmatchBy kolom moet een overeenkomstige buitenste value hebben om de 'huidige partitie' te define waarop moet worden uitgevoerd, met het volgende gedrag:

  • If er precies één overeenkomstige buitenkolom is, wordt de value gebruikt.
  • If er geen corresponderende buitenste kolom is:
    • INDEX bepaalt firstallpartitionByandmatchBy kolommen zonder bijbehorende buitenste kolom.
    • Voor elke combinatie van bestaande values voor deze kolommen in de bovenliggende context van INDEXwordt INDEX geëvalueerd and een rij wordt geretourneerd.
    • INDEXuiteindelijke uitvoer is een union van deze rijen.
  • If er meer dan één corresponderende buitenkolom is, wordt een error geretourneerd.

If matchBy aanwezig is, probeert INDEXmatchByandpartitionBy kolommen te gebruiken om de rij te identificeren. If matchBy is not aanwezig and de kolommen die zijn opgegeven in orderByandpartitionBy niet elke rij in relationkunnen identificeren:

  • INDEX probeert het minste aantal extra kolommen te find dat nodig is om elke rij uniek te identificeren.
  • If dergelijke kolommen kunnen worden gevonden, voegt INDEX deze nieuwe kolommen automatisch toe aan orderBy, and elke partitie wordt gesorteerd met behulp van deze nieuwe set OrderBy kolommen.
  • If dergelijke kolommen niet kunnen worden gevonden, wordt een error geretourneerd.

Er wordt een lege tabel geretourneerd if:

  • De overeenkomstige buitenste value van een PartitionBy kolom bestaat not binnen relation.
  • De positionvalue verwijst naar een positie die not in de partitie bestaat.

If INDEX wordt gebruikt in een berekende kolom die is gedefinieerd in dezelfde tabel als relationandorderBy wordt weggelaten, wordt een error geretourneerd.

reset kan alleen worden gebruikt in visuele berekeningen, and kan niet worden gebruikt in combinatie met orderByorpartitionBy. If reset aanwezig is, kan axis worden opgegeven, maar relation niet.

Voorbeeld 1: berekende kolom

De volgende DAX query:

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

Retourneert de volgende tabel:

DimDate[CalendarYear]
2005

Voorbeeld 2: berekende kolom

De volgende DAX query:

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]

Retourneert de volgende tabel:

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

Voorbeeld 3: visuele berekening

De volgende visuele berekening DAX query's:

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

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

Verbeter een tabel zodat deze contains, voor elke month:
- het totale verkoopbedrag;
- het verschil met de firstmonth van de respectieve year;
- and het verschil met de firstmonth van de respectieve quarter.

In de onderstaande schermopname ziet u de visualmatrix and de first visuele berekeningsexpressie:

DAX visuele berekening

OFFSET
ORDERBY
PARTITIONBY
WINDOW
RANK
ROWNUMBER