Lire en anglais

Partager via


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

DAX
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 AllorderByandpartitionBy doivent être des noms de colonnes complets and proviennent d’une table unique.
: valeur par défaut ALLSELECTED() des colonnes all dans orderByandpartitionBy.
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 partitionByandmatchBy 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 allpartitionByandmatchBy 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.
  • If il existe plusieurs colonnes externes correspondantes, une error est retournée.

If matchBy est présente, INDEX essaie d’utiliser des colonnes matchByandpartitionBy pour identifier la ligne. If matchBy est not présente and les colonnes spécifiées dans orderByandpartitionBy 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 positionvalue 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 relationandorderBy 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 orderByorpartitionBy. 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 :

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

Retourne le tableau suivant :

DimDate[CalendarYear]
2005

Exemple 2 : colonne calculée

Requête DAX suivante :

DAX
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 :

DAX
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 :

DAX de calcul visuel

OFFSET
ORDERBY
PARTITIONBY
WINDOW
RANK
ROWNUMBER