INDEX
gäller för:beräknad kolumnberäknad tabellMeasurevisuell beräkning
Returnerar en rad vid en absolut position som anges av positionsparametern inom den angivna partitionen, sorterad efter angiven ordning. If den aktuella partitionen inte kan härledas till en enda partition kan flera rader returneras.
Syntax
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametrar
Term | Definition |
---|---|
position |
Den absoluta position (1-baserad) som data ska hämtas från: - position är positiv: 1 är den first raden, 2 är second rad osv. - position är negativ: -1 är den last raden, -2 är den secondlast raden osv. När position är utom gränsen, or noll, orBLANK(), INDEX returnerar en tom tabell. Det kan vara valfritt DAX uttryck som returnerar en skalär value. |
relation |
(Valfritt) Ett tabelluttryck som utdata returneras från.
If anges måste all kolumner i partitionBy komma från den or en related tabell.
If utelämnas: - orderBy måste anges uttryckligen.
– All orderBy andpartitionBy uttryck måste vara fullständigt kvalificerade kolumnnamn and komma från en enda tabell.
– Standardvärdet är ALLSELECTED() av all kolumner i orderBy andpartitionBy . |
axis |
(Valfritt) En axel i den visuella formen. Endast tillgängligt i visuella beräkningar ersätter andrelation . |
orderBy |
(Valfritt) En ORDERBY-sats () som innehåller de uttryck som define hur varje partition sorteras.
If utelämnas: - relation måste anges uttryckligen.
– Standardinställningen är att sortera efter varje kolumn i relation som not redan har angetts i partitionBy . |
blanks |
(Valfritt) En uppräkning som definierar hur du hanterar blankvalues vid sortering.
Den här parametern är reserverad för framtida användning. För närvarande är den enda value som stöds DEFAULT , där beteendet för numeriska valuesblankvalues sorteras mellan noll and negativa values. Beteendet för strängar är blankvalues sorteras före all strängar, inklusive tomma strängar. |
partitionBy |
(Valfritt) En PARTITIONBY() -sats som innehåller kolumnerna som define hur relation partitioneras.
If utelämnas behandlas relation som en enda partition. |
matchBy |
(Valfritt) En MATCHBY() -sats som innehåller de kolumner som define hur du matchar data and identifiera den aktuella raden. |
reset |
(Valfritt) Endast tillgängligt i visuella beräkningar. Anger if beräkningen återställs, and på vilken nivå av den visuella formens kolumnhierarki. Godkända values är: en fältreferens till en kolumn i den aktuella visuella formen, NONE (standard), LOWESTPARENT , HIGHESTPARENT , or ett heltal. Beteendet beror på heltal sign: – If noll or utelämnas återställs beräkningen not. Motsvarar NONE .
– If positivt identifierar heltal kolumnen med början från den högsta, oberoende av kornighet. HIGHESTPARENT motsvarar 1.
– If negativt identifierar heltal kolumnen med början från den lägsta, i förhållande till det aktuella kornet. LOWESTPARENT motsvarar -1. |
Returnera value
En rad vid en absolut position.
Anmärkningar
Varje partitionBy
andmatchBy
kolumn måste ha motsvarande yttre value för att define den "aktuella partition" som ska användas med följande beteende:
- If det finns exakt en motsvarande yttre kolumn används dess value.
-
If det inte finns någon motsvarande yttre kolumn:
-
INDEX avgör firstall
partitionBy
andmatchBy
kolumner som inte har någon motsvarande yttre kolumn. - För varje kombination av befintliga values för dessa kolumner i INDEXöverordnade kontexten utvärderas INDEXand en rad returneras.
- INDEXslututdata är en union av dessa rader.
-
INDEX avgör firstall
- If det finns mer än en motsvarande yttre kolumn returneras en error.
If
matchBy
finns försöker INDEX använda matchBy
andpartitionBy
kolumner för att identifiera raden.
If
matchBy
finns notand de kolumner som anges i orderBy
andpartitionBy
kan inte unikt identifiera varje rad i relation
:
- INDEX försöker find minst antal ytterligare kolumner som krävs för att unikt identifiera varje rad.
-
If sådana kolumner finns lägger INDEX automatiskt till dessa nya kolumner i
orderBy
, and varje partition sorteras med den här nya uppsättningen OrderBy kolumner. - If sådana kolumner inte kan hittas returneras en error.
En tom tabell returneras if:
- Motsvarande yttre value för en PartitionBy kolumn finns not i
relation
. -
position
value refererar till en position som not finns i partitionen.
If
INDEX används i en beräknad kolumn som definierats i samma tabell som relation
andorderBy
utelämnas returneras en error.
reset
kan endast användas i visuella beräkningar kan and inte användas i kombination med orderBy
orpartitionBy
.
If
reset
finns kan axis
anges, men relation
kan inte det.
Exempel 1 – beräknad kolumn
Följande DAX fråga:
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
Returnerar följande tabell:
DimDate[CalendarYear] |
---|
2005 |
Exempel 2 – beräknad kolumn
Följande DAX fråga:
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]
Returnerar följande 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 |
Exempel 3 – visuell beräkning
Följande visuella beräkning DAX frågor:
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
Förbättra en tabell så att den contains, för varje month:
– det totala försäljningsbeloppet;
– skillnaden till firstmonth för respektive year;
– and skillnaden till firstmonth för respektive quarter.
Skärmbilden nedan visar den visuella matrisen and det first visuella beräkningsuttrycket: