INDEX
Aplica-se a:Coluna calculadaTabela calculadaMeasureCálculo visual
Retorna uma linha em uma posição absoluta, especificada pelo parâmetro position, dentro da partição especificada, classificada pela ordem especificada. If a partição atual não puder ser deduzida para uma única partição, várias linhas poderão ser retornadas.
Sintaxe
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parâmetros
Vigência | Definição |
---|---|
position |
A posição absoluta (baseada em 1) a partir da qual se obtêm os dados: - position é positivo: 1 é a first linha, 2 é a second linha, etc. - position é negativo: -1 é a linha last, -2 é a linha secondlast, etc. Quando position estiver fora do limite, or zero, orBLANK(), INDEX retornará uma tabela vazia. Pode ser qualquer expressão DAX que retorna uma valueescalar . |
relation |
(Opcional) Uma expressão de tabela da qual a saída é retornada.
If especificado, all colunas em partitionBy devem vir dele or uma tabela related.
If omitido: - orderBy deve ser explicitamente especificado.
- All orderBy andpartitionBy expressões devem ser nomes de coluna totalmente qualificados and provenientes de uma única tabela.
- O padrão é ALLSELECTED() de all colunas no orderBy andpartitionBy . |
axis |
(Opcional) Um eixo na forma visual. Disponível apenas em cálculos visuais, and substitui relation . |
orderBy |
(Opcional) Uma cláusula ORDERBY() contendo as expressões que define como cada partição é classificada.
If omitido: - relation deve ser explicitamente especificado.
- Padroniza a ordenação por cada coluna em relation que not já especificada em partitionBy . |
blanks |
(Opcional) Uma enumeração que define como lidar com blankvalues ao classificar.
Este parâmetro está reservado para uso futuro. Atualmente, a única value suportada é DEFAULT , onde o comportamento para values numéricos é blankvalues são ordenados entre zero and negativo values. O comportamento para cadeias de caracteres é blankvalues são ordenadas antes de all cadeias de caracteres, incluindo cadeias vazias. |
partitionBy |
(Opcional) Uma cláusula PARTITIONBY() que contém as colunas que define como relation é particionado.
If omitida, relation é tratada como uma única partição. |
matchBy |
(Opcional) Uma cláusula MATCHBY() que contém as colunas que define como fazer a correspondência de dados and identificar a linha atual. |
reset |
(Opcional) Disponível apenas em cálculos visuais. Indica if o cálculo é redefinido and em que nível da hierarquia de colunas da forma visual. Os values aceitos são: NONE , LOWESTPARENT , HIGHESTPARENT , or um número inteiro. O comportamento depende do número inteiro sign: - If zero or omitido, o cálculo not é reiniciado. Equivalente a NONE .
- If positivo, o inteiro identifica a coluna a partir do mais alto, independente do grão. HIGHESTPARENT equivale a 1.
- If negativo, o inteiro identifica a coluna a partir do mais baixo, em relação ao grão atual. LOWESTPARENT é equivalente a -1. |
Regresso value
Uma linha em posição absoluta.
Comentários
Cada coluna partitionBy
andmatchBy
deve ter uma value externa correspondente para ajudar a define a "partição atual" na qual operar, com o seguinte comportamento:
- If houver exatamente uma coluna externa correspondente, sua value é usada.
-
If não houver coluna externa correspondente:
-
INDEX
first determinará all
partitionBy
andmatchBy
colunas que não têm coluna externa correspondente. - Para cada combinação de values existentes para essas colunas no contexto pai do INDEX, INDEX é avaliada and uma linha é retornada.
- A saída final do INDEXé uma union dessas linhas.
-
INDEX
first determinará all
- If houver mais de uma coluna externa correspondente, uma error será retornada.
If
matchBy
estiver presente, INDEX tentará usar matchBy
andpartitionBy
colunas para identificar a linha.
If
matchBy
not está presente and as colunas especificadas no orderBy
andpartitionBy
não é possível identificar exclusivamente todas as linhas relation
:
- INDEX tentará find o menor número de colunas adicionais necessárias para identificar exclusivamente cada linha.
-
If essas colunas puderem ser encontradas, INDEX acrescentará automaticamente essas novas colunas a
orderBy
, and cada partição é classificada usando esse novo conjunto de colunas OrderBy. - If essas colunas não puderem ser encontradas, uma error será retornada.
Uma tabela vazia é retornada if:
- A value externa correspondente de uma coluna PartitionBynot existe dentro
relation
. - O
position
value refere-se a uma posição que not existe dentro da partição.
If
INDEX é usado dentro de uma coluna calculada definida na mesma tabela em que relation
andorderBy
é omitido, um error é retornado.
reset
pode ser usado apenas em cálculos visuais and não pode ser usado em combinação com orderBy
orpartitionBy
.
If
reset
está presente, axis
pode ser especificado, mas relation
não pode.
Exemplo 1 - coluna calculada
O seguinte DAX consulta:
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
Devolve a seguinte tabela:
DimDate[Ano Calendário] |
---|
2005 |
Exemplo 2 - coluna calculada
O seguinte DAX consulta:
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]
Devolve a seguinte tabela:
FactInternetSales[ProductKey] | DimDate[NúmeroMêsDoAno] | [CurrentSales] | [Vendas do último mês] |
---|---|---|---|
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 |
Exemplo 3 - cálculo visual
O cálculo visual a seguir DAX consultas:
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
Melhore uma tabela para que ela contains, para cada month:
- o valor total das vendas;
- a diferença para o firstmonth dos respetivos year;
- and a diferença para o firstmonth dos respetivos quarter.
A captura de tela abaixo mostra a matriz visual and a first expressão de cálculo visual: