Partilhar via


EARLIER

Aplica-se a:Coluna calculadaTabela calculadaMedidaCálculo visual

Devolve o valor atual da coluna especificada numa passagem de avaliação externa da coluna mencionada.

EARLIER é útil para cálculos aninhados em que você deseja usar um determinado valor como entrada e 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 valor da entrada e, em seguida, 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 ou expressão que resolve para uma coluna.
num (Opcional) Um número positivo para a avaliação externa aprovado.

O próximo nível de avaliação é representado por 1; dois níveis fora é representado por 2 e assim por diante.

Quando omitido, o valor padrão é 1.

Valor de retorno

O valor atual da linha, a partir de column, em number de avaliação externa passa.

Exceções

Descrição dos erros

Comentários

  • EARLIER terá êxito se houver um contexto de linha antes do início da verificação da tabela. Caso contrário, ele retorna um erro.

  • 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, se você tiver 10 linhas na coluna, aproximadamente 100 operações podem ser necessárias; Se você tiver 100 linhas, cerca de 10.000 operações poderão ser executadas.

  • Esta função não é suportada para utilização no modo DirectQuery quando utilizada em colunas calculadas ou regras de segurança ao nível da 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 de EARLIER, é necessário construir um cenário que calcule um valor de classificação e, em seguida, use esse valor de classificação 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 e 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 e Câmaras de Ar $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 valor de classificação

Uma maneira de obter um valor de classificação para um determinado valor em uma linha é contar o número de linhas, na mesma tabela, que têm um valor maior (ou menor) do que aquele que está sendo comparado. Essa técnica retorna um valor em branco ou zero para o valor mais alto na tabela, enquanto valores iguais terão o mesmo valor de classificação e o próximo valor (após os valores iguais) terá um valor de classificação não consecutivo. Veja o exemplo 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 valor de TotalSubcategorySales para a linha atual na tabela. Neste caso, como o processo está a começar, é a primeira linha da tabela

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

  3. A função FILTER agora retorna uma tabela onde todas as linhas têm um valor de TotalSubcategorySales maior que $156,167.88 (que é o valor atual para EARLIER).

  4. A função COUNTROWS conta as linhas da tabela filtrada e atribui esse valor à nova coluna calculada na linha atual mais 1. Adicionar 1 é necessário para evitar que o valor mais bem classificado se torne um Blank.

  5. A fórmula da coluna calculada move-se para a linha seguinte e 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 valor da coluna antes da operação da tabela atual. Se você precisar obter um valor do loop antes disso, defina o segundo argumento como 2.

EARLIEST funçãofunções de filtro