INDEX
s’applique à :colonne calculéetable calculéeMeasurecalcul visuel
Retourne une ligne à une position absolue, spécifiée par le paramètre de position, dans la partition spécifiée, triée par l’ordre spécifié. If la partition actuelle ne peut pas être déduite d’une seule partition, plusieurs lignes peuvent être retournées.
Syntaxe
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Paramètres
Terme | Définition |
---|---|
position |
Position absolue (basée sur 1) à partir de laquelle obtenir les données : - position est positive : 1 est la ligne first, 2 est la ligne second, etc. - position est négative : -1 est la ligne last, -2 est la ligne secondlast, etc. Lorsque position est hors de la limite, or zéro, orBLANK(), INDEX retourne une table vide. Il peut s’agir de n’importe quelle expression DAX qui retourne une valuescalaire. |
relation |
(Facultatif) Expression de table à partir de laquelle la sortie est retournée.
If spécifié, all colonnes dans partitionBy doivent provenir de celui-ci or une table related.
If omis : - orderBy doit être spécifié explicitement.
: les expressions All orderBy andpartitionBy doivent être des noms de colonnes complets and proviennent d’une table unique.
: valeur par défaut ALLSELECTED() des colonnes all dans orderBy andpartitionBy . |
axis |
(Facultatif) Axe de la forme visuelle. Disponible uniquement dans les calculs visuels, and remplace relation . |
orderBy |
(Facultatif) Clause ORDERBY() contenant les expressions qui define comment chaque partition est triée.
If omis : - relation doit être spécifié explicitement.
: tri par défaut par chaque colonne dans relation qui est not déjà spécifiée dans partitionBy . |
blanks |
(Facultatif) Énumération qui définit comment gérer blankvalues lors du tri.
Ce paramètre est réservé à une utilisation ultérieure. Actuellement, la seule value prise en charge est DEFAULT , où le comportement de values numérique est blankvalues sont classés entre zéro andvaluesnégatif . Le comportement des chaînes est blankvalues sont classés avant all chaînes, y compris les chaînes vides. |
partitionBy |
(Facultatif) Clause PARTITIONBY() contenant les colonnes qui define comment relation est partitionnée.
If omis, relation est traitée comme une partition unique. |
matchBy |
(Facultatif) Clause MATCHBY() contenant les colonnes qui define comment faire correspondre les données and identifier la ligne actuelle. |
reset |
(Facultatif) Disponible uniquement dans les calculs visuels. Indique if les réinitialisations de calcul, and à quel niveau de la hiérarchie de colonnes de la forme visuelle. Les values acceptés sont les suivants : NONE , LOWESTPARENT , HIGHESTPARENT , or un entier. Le comportement dépend de l’entier sign: - If zéro or omis, le calcul ne réinitialise not. Équivalent à NONE .
- If positif, l’entier identifie la colonne à partir du grain le plus élevé, indépendamment du grain. HIGHESTPARENT équivaut à 1.
- If négatif, l’entier identifie la colonne à partir du plus bas, par rapport au grain actuel. LOWESTPARENT équivaut à -1. |
Retourner value
Ligne à une position absolue.
Remarques
Chaque colonne partitionBy
andmatchBy
doit avoir un value externe correspondant pour aider à define la « partition actuelle » sur laquelle fonctionner, avec le comportement suivant :
- If il existe exactement une colonne externe correspondante, son value est utilisé.
-
If il n’existe aucune colonne externe correspondante :
-
INDEX détermine first déterminer all
partitionBy
andmatchBy
colonnes qui n’ont aucune colonne externe correspondante. - Pour chaque combinaison de values existantes pour ces colonnes dans le contexte parent de INDEX, INDEX est évaluée and une ligne est retournée.
- INDEXla sortie finale est une union de ces lignes.
-
INDEX détermine first déterminer all
- If il existe plusieurs colonnes externes correspondantes, une error est retournée.
If
matchBy
est présente, INDEX essaie d’utiliser des colonnes matchBy
andpartitionBy
pour identifier la ligne.
If
matchBy
est not présente and les colonnes spécifiées dans orderBy
andpartitionBy
ne peuvent pas identifier de manière unique chaque ligne dans relation
:
- INDEX tenterez de find le moins de colonnes supplémentaires requises pour identifier de manière unique chaque ligne.
-
If de telles colonnes sont disponibles, INDEX ajoute automatiquement ces nouvelles colonnes à
orderBy
, and chaque partition est triée à l’aide de ce nouvel ensemble de colonnes OrderBy. - If de telles colonnes sont introuvables, une error est retournée.
Une table vide est retournée if:
- Le value externe correspondant d’une colonne PartitionBy n’existe not dans
relation
. - La
position
value fait référence à une position qui n’existe not dans la partition.
If
INDEX est utilisé dans une colonne calculée définie sur la même table que relation
andorderBy
est omise, une error est retournée.
reset
peuvent être utilisés uniquement dans les calculs visuels, and ne peuvent pas être utilisés en combinaison avec orderBy
orpartitionBy
.
If
reset
est présente, axis
peut être spécifiée, mais relation
ne peut pas.
Exemple 1 : colonne calculée
Requête DAX suivante :
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
Retourne le tableau suivant :
DimDate[CalendarYear] |
---|
2005 |
Exemple 2 : colonne calculée
Requête DAX suivante :
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]
Retourne le tableau suivant :
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 |
Exemple 3 : calcul visuel
Le calcul visuel suivant DAX requêtes :
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
Améliorez une table afin qu’elle contains, pour chaque month:
- montant total des ventes ;
- différence entre le firstmonth du yearrespectif ;
- and la différence entre les firstmonth du quarterrespectif.
La capture d’écran ci-dessous montre la matrice visuelle and l’expression de calcul visuel first :
de calcul visuel