Ler em inglês

Compartilhar via


EARLIER

aplica-se a:coluna calculadatabela calculadaMeasurecálculo visual

Retorna o value atual da coluna especificada em uma passagem de avaliação externa 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 no contexto da linha atual; no entanto, em DAX você pode armazenar o value da and de entrada e, em seguida, fazer o cálculo usando dados de toda a tabela.

EARLIER é usado principalmente no contexto de colunas calculadas.

Sintaxe

DAX
EARLIER(<column>, <number>)  

Parâmetros

Prazo Definição
column Uma coluna or expressão que é resolvida para uma coluna.
num (Opcional) Um número positivo para a passagem de avaliação externa.

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

Quando o value padrão omitido é 1.

Retornar value

O value atual da linha, de column, em number de aprovações de avaliação externa.

Exceções

Descrição dos erros

Observações

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

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

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

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 envolvam recursão.

Exemplo

Para ilustrar o uso de EARLIER, é necessário criar um cenário que calcula um rankvalueand então usa esse rankvalue em outros cálculos.

O exemplo a seguir baseia-se nessa 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 TotalSubcategorySales SubcategoryRanking
18 Bib-Shorts $156.167,88 18
26 Bicicletários $220.720,70 14
27 Estandes de bicicleta US$ 35.628,69 30
28 Garrafas and gaiolas $59.342,43 24
5 Colchetes inferiores $48.643,47 27
6 Freios $62.113,16 23
19 Caps $47.934,54 28
7 Correntes US$ 8.847,08 35
29 Limpeza $16.882,62 32
8 Conjuntos de manivelas $191.522,09 15
9 Descarrilamentos $64.965,33 22
30 Fenders US$ 41.974,10 29
10 Garfos $74.727,66 21
20 Luvas $228.353,58 12
4 Guidão $163.257,06 17
11 Auriculares US$ 57.659,99 25
31 Capacetes US$ 451.192,31 9
32 Pacotes de Hidratação $96.893,78 20
21 Camisola $699.429,78 7
33 Luzes 36
34 Fechaduras $15.059,47 33
1 Mountain Bikes $34.305.864,29 2
12 Quadros de montanha $4.511.170,68 4
35 Cestos 36
13 Pedais $140.422,20 19
36 Bombas $12.695,18 34
2 Bicicletas rodoviárias $40.551.696,34 1
14 Quadros de estrada $3.636.398,71 5
15 Selas $52.526,47 26
22 Calção $385.707,80 10
23 Meias $28.337,85 31
24 Meia-calça $189.179,37 16
37 Pneus and tubos $224.832,81 13
3 Bicicletas de passeio $13.334.864,18 3
16 Quadros de tour $1.545.344,02 6
25 Coletes US$ 240.990,04 11
17 Rodas $648.240,04 8

Criando um RankValue

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

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

DAX
= 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. Nesse caso, como o processo está sendo iniciado, é a linha first na tabela

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

  3. A função FILTERnow retorna uma tabela em que as linhas all têm uma value de TotalSubcategorySales maior que US$ 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 impedir que os value mais bem classificados se tornem um Blank.

  5. A fórmula de coluna calculada é movida para a linha nextand repete as etapas 1 a 4. Essas etapas são repetidas até que o final da tabela seja atingido.

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

de função
Filter funções