MAIS CEDO

Aplica-se a:Colunacalculada Tabelacalculada MedidaCá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, no 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

Termo Definição
coluna 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 devolvido

O valor atual da linha, da coluna, no número de passagens de avaliação externa.

Exceções

Descrição dos erros

Observações

  • 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).

Nota

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 criar 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 EnglishProductSubcategoryName TotalSubcategoriaVendas SubcategoriaClassificação
18 Bib-Calções $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 Bottom Brackets $48,643.47 27
6 Brakes $62,113.16 23
19 Bonés $47,934.54 28
7 Chains $8,847.08 35
29 Produtos de limpeza $16,882.62 32
8 Cranksets $191,522.09 15
9 Derailleurs $64,965.33 22
30 Fenders $41,974.10 29
10 Forks $74,727.66 21
20 Luvas $228,353.58 12
4 Handlebars $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 Bloqueios $15,059.47 33
1 Mountain Bikes $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 Road Bikes $40.551.696,34 1
14 Quadros de Estrada $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 Touring $13.334.864,18 3
16 Quadros de Touring $1.545.344,02 6
25 Coletes $240,990.04 11
17 Pneus $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]) é avaliado em 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.

Função EARLIEST
Funções de filtro