INDEX
gælder for:beregnet kolonneberegnet tabelMeasurevisualiseringsberegning
Returnerer en række på en absolut placering, der er angivet af positionsparameteren, i den angivne partition sorteret efter den angivne rækkefølge. If den aktuelle partition ikke kan udledes til en enkelt partition, returneres der muligvis flere rækker.
Syntaks
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametre
Udtryk | Definition |
---|---|
position |
Den absolutte position (1-baseret), som dataene skal hentes fra: - position er positiv: 1 er den first række, 2 er den second række osv. - position er negativ: -1 er den last række, -2 er den secondlast række osv. Når position er uden for grænsen, or nul, orBLANK(), INDEX returnerer en tom tabel. Det kan være et hvilket som helst DAX udtryk, der returnerer en skalar value. |
relation |
(Valgfrit) Et tabeludtryk, som outputtet returneres fra.
If angivet, skal all kolonner i partitionBy komme fra den or en related tabel.
If udeladt: - orderBy skal angives eksplicit.
– All orderBy andpartitionBy udtryk skal være fuldt kvalificerede kolonnenavne, and kommer fra en enkelt tabel.
– som standard ALLSELECTED() af all kolonner i orderBy andpartitionBy . |
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 value DEFAULT , 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: en feltreference til en kolonne i den aktuelle visualiseringsfigur, NONE (standard), LOWESTPARENT , HIGHESTPARENT or 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 række på en absolut placering.
Bemærkninger
Hver partitionBy
andmatchBy
kolonne skal have en tilsvarende ydre value for at hjælpe med at define den "aktuelle partition", 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:
-
INDEX bestemmer firstall
partitionBy
andmatchBy
kolonner, der ikke har en tilsvarende ydre kolonne. - For hver kombination af eksisterende values for disse kolonner i INDEXoverordnede kontekst evalueres INDEXand en række returneres.
- INDEXendelige output er en union af disse rækker.
-
INDEX bestemmer firstall
- If der er mere end én tilsvarende ydre kolonne, returneres der en error.
If
matchBy
er til stede, forsøger INDEX at bruge matchBy
andpartitionBy
kolonner til at identificere rækken.
If
matchBy
findes notand de kolonner, der er angivet i orderBy
andpartitionBy
, kan ikke entydigt identificere hver række i relation
:
- INDEX 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 INDEX 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 PartitionBy kolonne findes not i
relation
. -
position
value refererer til en position, der not findes i partitionen.
If
INDEX 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 orderBy
orpartitionBy
.
If
reset
findes, kan axis
angives, men relation
kan ikke.
Eksempel 1 – beregnet kolonne
Følgende DAX forespørgsel:
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
Returnerer følgende tabel:
DimDate[CalendarYear] |
---|
2005 |
Eksempel 2 – beregnet kolonne
Følgende DAX forespørgsel:
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 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 |
Eksempel 3 – visuel beregning
Følgende visuelle beregning DAX forespørgsler:
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
Optimer en tabel, så den containsfor hver month:
– det samlede salgsbeløb;
- forskellen i forhold til firstmonth af de respektive year;
– and forskellen i forhold til firstmonth af de respektive quarter.
Skærmbilledet nedenfor viser den visuelle matrix and det first visuelle beregningsudtryk: