INDEX
Si applica a:colonna calcolatatabella calcolataMeasurecalcolo visivo
Restituisce una riga in una posizione assoluta, specificata dal parametro position, all'interno della partizione specificata, ordinata in base all'ordine specificato. If non è possibile dedurre la partizione corrente in una singola partizione, è possibile che vengano restituite più righe.
Sintassi
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametri
Termine | Definizione |
---|---|
position |
La posizione assoluta (in base 1) da cui ottenere i dati: - position è positiva: 1 è la riga first, 2 è la riga second e così via. - position è negativa: -1 è la riga last, -2 è la riga secondlast e così via. Quando position è fuori dal limite, or zero, orBLANK(), INDEX restituirà una tabella vuota. Può essere qualsiasi espressione DAX che restituisce un valuescalare . |
relation |
(Facoltativo) Espressione di tabella da cui viene restituito l'output.
If specificato, all colonne in partitionBy devono provenire da essa or una tabella related.
If omesso: - orderBy deve essere specificato in modo esplicito.
: le espressioni All orderBy andpartitionBy devono essere nomi di colonna completi and provengono da una singola tabella.
: per impostazione predefinita viene ALLSELECTED() di colonne di all in orderBy andpartitionBy . |
axis |
(Facoltativo) Asse nella forma visiva. Disponibile solo nei calcoli visivi, and sostituisce relation . |
orderBy |
(Facoltativo) Clausola ORDERBY() contenente le espressioni che define la modalità di ordinamento di ogni partizione.
If omesso: - relation deve essere specificato in modo esplicito.
: per impostazione predefinita l'ordinamento in base a ogni colonna in relation not già specificata in partitionBy . |
blanks |
(Facoltativo) Enumerazione che definisce come gestire blankvalues durante l'ordinamento.
Questo parametro è riservato per uso futuro. Attualmente, l'unico value supportato è DEFAULT , dove il comportamento per values numerici è blankvalues viene ordinato tra zero andvaluesnegativo. Il comportamento delle stringhe è blankvalues vengono ordinati prima di all stringhe, incluse le stringhe vuote. |
partitionBy |
(Facoltativo) Clausola PARTITIONBY() contenente le colonne che define come relation viene partizionata.
If omesso, relation viene considerato come una singola partizione. |
matchBy |
(Facoltativo) Clausola MATCHBY() contenente le colonne che define come trovare una corrispondenza con i dati and identificare la riga corrente. |
reset |
(Facoltativo) Disponibile solo nei calcoli visivi. Indica if il calcolo viene reimpostato, and a quale livello della gerarchia di colonne della forma visiva. I values accettati sono: un riferimento di campo a una colonna nella forma visiva corrente, NONE (impostazione predefinita), LOWESTPARENT , HIGHESTPARENT , or un numero intero. Il comportamento dipende dall'intero sign: - If zero or omesso, il calcolo viene reimpostato not. Equivalente a NONE .
: If positivo, l'intero identifica la colonna a partire dal più alto, indipendentemente dal livello di granularità. HIGHESTPARENT equivale a 1.
: If negativo, l'intero identifica la colonna a partire dal più basso, rispetto alla granularità corrente. LOWESTPARENT equivale a -1. |
Restituisce value
Riga in una posizione assoluta.
Osservazioni
Ogni colonna partitionBy
andmatchBy
deve avere un value esterno corrispondente per define la "partizione corrente" su cui operare, con il comportamento seguente:
- If esiste esattamente una colonna esterna corrispondente, viene usata la relativa value.
-
If non esiste alcuna colonna esterna corrispondente:
-
INDEX determinerà first colonne all
partitionBy
andmatchBy
senza colonna esterna corrispondente. - Per ogni combinazione di values esistenti per queste colonne nel contesto padre di INDEX, INDEX viene valutata and viene restituita una riga.
- INDEX'output finale è un union di queste righe.
-
INDEX determinerà first colonne all
- If è presente più di una colonna esterna corrispondente, viene restituita una error.
If
matchBy
è presente, INDEX tenterà di usare matchBy
andpartitionBy
colonne per identificare la riga.
If
matchBy
è not presente and le colonne specificate in orderBy
andpartitionBy
non possono identificare in modo univoco ogni riga in relation
:
- INDEX tenterà di find il minor numero di colonne aggiuntive necessarie per identificare in modo univoco ogni riga.
-
If è possibile trovare tali colonne, INDEX accoderà automaticamente queste nuove colonne a
orderBy
, and ogni partizione viene ordinata usando questo nuovo set di colonne OrderBy. - If non è possibile trovare tali colonne, viene restituito un error.
Viene restituita una tabella vuota if:
- La value esterna corrispondente di una colonna PartitionBynot esiste all'interno di
relation
. - Il
position
value fa riferimento a una posizione che not esiste all'interno della partizione.
If
INDEX viene utilizzato all'interno di una colonna calcolata definita nella stessa tabella di relation
andorderBy
viene omessa, viene restituito un error.
reset
può essere usato solo nei calcoli visivi, and non può essere usato in combinazione con orderBy
orpartitionBy
.
If
reset
è presente, è possibile specificare axis
, ma non relation
.
Esempio 1 : colonna calcolata
La query di DAX seguente:
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
Restituisce la tabella seguente:
DimDate[CalendarYear] |
---|
2005 |
Esempio 2 : colonna calcolata
La query di DAX seguente:
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]
Restituisce la tabella seguente:
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 |
Esempio 3 - Calcolo visivo
Il calcolo visivo seguente DAX query:
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
Migliorare una tabella in modo che contains, per ogni month:
- l'importo totale delle vendite;
: differenza con il firstmonth dei rispettivi year;
: and la differenza con il firstmonth del rispettivo quarter.
Lo screenshot seguente mostra la matrice visiva and'espressione di calcolo visivo first: