Partilhar via


EARLIER

Aplica-se a:Coluna calculadaTabela calculadaMeasureCálculo visual

Devolve a value atual da coluna especificada num passo de avaliação exterior da coluna mencionada.

EARLIER é útil para cálculos aninhados em que você deseja usar um determinado value como entrada and produzir cálculos com base nessa entrada. No Microsoft Excel, você pode fazer esses cálculos somente dentro do contexto da linha atual; No entanto, em DAX você pode armazenar o value da entrada and fazer o cálculo usando dados de toda a tabela.

EARLIER é usado principalmente no contexto de colunas calculadas.

Sintaxe

EARLIER(<column>, <number>)

Parâmetros

Vigência Definição
column Uma coluna or expressão que resolve para uma coluna.
num (Opcional) Um número positivo para a avaliação externa aprovado.

O nível de avaliação next é representado por 1; dois níveis fora é representado por 2 and assim por diante.

Quando omitido, o value padrão é 1.

Regresso value

A atual value de linha, de column, em number de avaliação externa passa.

Exceções

Descrição dos erros

Comentários

  • EARLIER for bem-sucedido if houver um contexto de linha antes do início da verificação da tabela. Caso contrário, ele retorna um error.

  • O desempenho de EARLIER pode ser lento porque, teoricamente, ele pode ter que executar um número de operações próximo ao número total de linhas (na coluna) vezes o mesmo número (dependendo da sintaxe da expressão). Por exemplo, if você tiver 10 linhas na coluna, aproximadamente 100 operações podem ser necessárias; if você tiver 100 linhas, cerca de 10.000 operações poderão ser executadas.

  • Esta função not é suportada para uso no modo DirectQuery quando usada em colunas calculadas or regras de segurança em nível de linha (RLS).

Observação

Na prática, o mecanismo de análise na memória VertiPaq executa otimizações para reduzir o número real de cálculos, mas você deve ser cauteloso ao criar fórmulas que envolvem recursão.

Exemplo

Para ilustrar o uso do EARLIER, é necessário construir um cenário que calcule um rankvalueand depois use esse rankvalue em outros cálculos.

O exemplo a seguir é baseado nesta tabela simples, ProductSubcategory, que mostra o total de vendas para cada ProductSubcategory.

A tabela final, incluindo a coluna de classificação, é mostrada aqui.

ProductSubcategoryKey InglêsProductSubcategoryName TotalSubcategoriaVendas SubcategoriaClassificação
18 Bib-Shorts $156,167.88 18
26 Suportes para bicicletas $220,720.70 14
27 Suportes para Bicicletas $35,628.69 30
28 Garrafas and gaiolas $59,342.43 24
5 Colchetes inferiores $48,643.47 27
6 Travões $62,113.16 23
19 Bonés $47,934.54 28
7 Correntes $8,847.08 35
29 Produtos de limpeza $16,882.62 32
8 Manivelas $191,522.09 15
9 Descarriladores $64,965.33 22
30 Fenders $41,974.10 29
10 Garfos $74,727.66 21
20 Luvas $228,353.58 12
4 Guiador $163,257.06 17
11 Auriculares $57,659.99 25
31 Capacetes $451,192.31 9
32 Pacotes de hidratação $96,893.78 20
21 Camisolas $699,429.78 7
33 Luzes 36
34 Fechaduras $15,059.47 33
1 Bicicletas de montanha $34.305.864,29 2
12 Quadros de Montanha $4.511.170,68 4
35 Panniers 36
13 Pedais $140,422.20 19
36 Bombas $12,695.18 34
2 Bicicletas de Estrada $40.551.696,34 1
14 Caixilharia de Estradas $3.636.398,71 5
15 Selas $52,526.47 26
22 Calções $385,707.80 10
23 Meias $28,337.85 31
24 Collants $189,179.37 16
37 Pneus and Tubos $224,832.81 13
3 Bicicletas de Turismo $13.334.864,18 3
16 Quadros Touring $1.545.344,02 6
25 Coletes $240,990.04 11
17 Rodas $648,240.04 8

Criando um RankValue

Uma maneira de obter um rankvalue para uma determinada value em uma linha é count o número de linhas, na mesma tabela, que têm um value maior (or menor) do que a que está sendo comparada. Esta técnica retorna um blankor zero value para o value mais alto na tabela, enquanto values igual terá o mesmo rankvalueandnextvalue (após o valuesigual) terá um rankvaluenão consecutivo. Veja o sample abaixo.

Uma nova coluna calculada, SubCategorySalesRanking, é criada usando a fórmula a seguir.

= COUNTROWS(FILTER(ProductSubcategory, EARLIER(ProductSubcategory[TotalSubcategorySales])<ProductSubcategory[TotalSubcategorySales]))+1

As etapas a seguir descrevem o método de cálculo com mais detalhes.

  1. A função EARLIER obtém o value de TotalSubcategorySales para a linha atual na tabela. Neste caso, como o processo está a começar, é a first linha na tabela

  2. EARLIER([TotalSubcategorySales]) avalia a US$ 156.167,88, a linha atual no loop externo.

  3. A função FILTERnow retorna uma tabela onde all linhas têm um value de TotalSubcategorySales maior que $156,167.88 (que é o value atual para EARLIER).

  4. A função COUNTROWS conta as linhas da tabela filtrada and atribui essa value à nova coluna calculada na linha atual mais 1. A adição de 1 é necessária para evitar que o value mais bem classificado se torne um Blank.

  5. A fórmula de coluna calculada move-se para a next linha and repete os passos 1 a 4. Estes passos são repetidos até se chegar ao final da tabela.

A função EARLIER sempre obterá o value da coluna antes da operação da tabela atual. If você precisar obter um value do loop antes disso, defina o argumento second como 2.

EARLIEST funçãoFilter funções