Compartir a través de


INDEX

Se aplica a:columna CalculadaTabla calculadaMeasurecálculo visual

Devuelve una fila en una posición absoluta, especificada por el parámetro position, dentro de la partición especificada, ordenada por el orden especificado. If la partición actual no se puede deducir en una sola partición, se pueden devolver varias filas.

Sintaxis

INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Parámetros

Término Definición
position La posición absoluta (basada en 1) desde la que obtener los datos:
- position es positiva: 1 es la fila first, 2 es la fila de second, etc.
- position es negativa: -1 es la fila last, -2 es la fila secondlast, etc.
Cuando position está fuera del límite, or cero, orBLANK(), INDEX devolverá una tabla vacía. Puede ser cualquier expresión DAX que devuelva un valueescalar.
relation (Opcional) Expresión de tabla desde la que se devuelve la salida.
If especificado, all columnas de partitionBy deben proceder de ella or una tabla de related.
If omitido:
- orderBy debe especificarse explícitamente.
: las expresiones de AllorderByandpartitionBy deben ser nombres de columna completos and provengan de una sola tabla.
: el valor predeterminado es ALLSELECTED() de columnas de all en orderByandpartitionBy.
axis (Opcional) Eje de la forma visual. Disponible solo en cálculos visuales, and reemplaza relation.
orderBy (Opcional) Una cláusula ORDERBY() que contiene las expresiones que define cómo se ordena cada partición.
If omitido:
- relation debe especificarse explícitamente.
: el valor predeterminado es ordenar por cada columna de relation que ya está not especificado en partitionBy.
blanks (Opcional) Enumeración que define cómo controlar blankvalues al ordenar.
Este parámetro está reservado para uso futuro.
Actualmente, el único value admitido es DEFAULT, donde se ordena el comportamiento de los valuesblankvalues numéricos entre cero and negativo values. El comportamiento de las cadenas es blankvalues se ordenan antes de all cadenas, incluidas las cadenas vacías.
partitionBy (Opcional) Cláusula PARTITIONBY() que contiene las columnas que define cómo se particiona relation.
If omitido, relation se trata como una sola partición.
matchBy (Opcional) Cláusula MATCHBY() que contiene las columnas que define cómo hacer coincidir los datos and identificar la fila actual.
reset (Opcional) Solo está disponible en cálculos visuales. Indica if se restablece el cálculo, and en qué nivel de la jerarquía de columnas de la forma visual. Los values aceptados son: NONE, LOWESTPARENT, HIGHESTPARENT, or un entero. El comportamiento depende del signentero:
: If cero or omitido, el cálculo not restablece. Equivalente a NONE.
: If positivo, el entero identifica la columna a partir de la más alta, independiente del grano. HIGHESTPARENT equivale a 1.
: If negativo, el entero identifica la columna a partir del más bajo, en relación con el grano actual. LOWESTPARENT equivale a -1.

Devolver value

Una fila en una posición absoluta.

Observaciones

Cada columna partitionByandmatchBy debe tener un value externo correspondiente para ayudar a define la "partición actual" en la que se va a operar, con el siguiente comportamiento:

  • If hay exactamente una columna externa correspondiente, se usa su value.
  • If no hay ninguna columna externa correspondiente:
    • INDEX first determinará allpartitionByandmatchBy columnas que no tienen ninguna columna externa correspondiente.
    • Para cada combinación de values existentes para estas columnas en INDEXcontexto primario, INDEX se evalúa and se devuelve una fila.
    • INDEXsalida final es un union de estas filas.
  • If hay más de una columna externa correspondiente, se devuelve un error.

If matchBy está presente, INDEX intentará usar matchByandpartitionBy columnas para identificar la fila. If matchBy está not presente and las columnas especificadas en orderByandpartitionBy no pueden identificar de forma única todas las filas de relation:

  • INDEX intentará find el menor número de columnas adicionales necesarias para identificar de forma única cada fila.
  • If se pueden encontrar estas columnas, INDEX anexará automáticamente estas nuevas columnas a orderBy, and cada partición se ordena mediante este nuevo conjunto de columnas de OrderBy.
  • If estas columnas no se encuentran, se devuelve un error.

Se devuelve una tabla vacía if:

  • El value externo correspondiente de una columna de PartitionBynot existe dentro de relation.
  • El positionvalue hace referencia a una posición que not existe dentro de la partición.

If INDEX se usa dentro de una columna calculada definida en la misma tabla que relationandorderBy se omite, se devuelve un error.

reset solo se pueden usar en cálculos visuales, and no se pueden usar en combinación con orderByorpartitionBy. If reset está presente, se pueden especificar axis, pero no relation.

Ejemplo 1: columna calculada

La siguiente consulta DAX:

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

Devuelve la tabla siguiente:

DimDate[CalendarYear]
2005

Ejemplo 2: columna calculada

La siguiente consulta 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]

Devuelve la tabla siguiente:

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

Ejemplo 3: cálculo visual

El siguiente cálculo visual DAX consultas:

SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))

SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))

Mejore una tabla para que contains, para cada month:
- el importe total de ventas;
- la diferencia con el firstmonth de la yearrespectiva;
: and la diferencia con el firstmonth del quartercorrespondiente.

En la captura de pantalla siguiente se muestra la matriz visual and la expresión de cálculo visual first:

DAX de cálculo visual

OFFSET ORDERBY PARTITIONBY WINDOW RANK ROWNUMBER