Condividi tramite


EARLIER

Si applica a: Calcolo visivo misura tabella calcolata colonna calcolata

Restituisce il valore corrente della colonna specificata in un passaggio di valutazione esterno della colonna indicata.

EARLIER è utile per i calcoli annidati in cui si vuole usare un determinato valore come input e generare calcoli in base a tale input. In Microsoft Excel è possibile eseguire tali calcoli solo nel contesto della riga corrente. In DAX è invece possibile archiviare il valore dell'input e quindi eseguire il calcolo usando i dati dell'intera tabella.

EARLIER viene usato principalmente nel contesto delle colonne calcolate.

Sintassi

EARLIER(<column>, <number>)  

Parametri

Termine Definizione
colonna Colonna o espressione che viene risolta in una colonna.
num (Facoltativo) Numero positivo per il passaggio di valutazione esterno.

Il passaggio al livello di valutazione successivo è rappresentato da 1. Il passaggio a due livelli è rappresentato da 2 e così via.

Quando viene omesso, il valore predefinito è 1.

Valore restituito

Il valore corrente della riga, da column, in base al valore di number definito per i passaggi di valutazione esterni.

Eccezioni

Descrizione degli errori

Osservazioni:

  • EARLIER ha esito positivo se è presente un contesto di riga prima dell'inizio dell'analisi della tabella. In caso contrario, restituisce un errore.

  • Le prestazioni di EARLIER potrebbero risultare rallentate in quanto, teoreticamente, la funzione potrebbe dovere eseguire un numero di operazioni simile al numero complessivo di righe (nella colonna) moltiplicato per lo stesso numero (a seconda della sintassi dell'espressione). Se, ad esempio, sono presenti 10 righe nella colonna, potrebbero essere necessarie circa 100 operazioni. Se sono presenti 100 righe, potrebbero essere eseguite quasi 10.000 operazioni.

  • Questa funzione non è supportata per l'uso nella modalità DirectQuery se usata in colonne calcolate o nelle regole di sicurezza a livello di riga.

Nota

In pratica, il motore di analisi in memoria VertiPaq esegue ottimizzazioni per ridurre il numero effettivo di calcoli, ma è necessario prestare attenzione quando si creano formule che coinvolgono la ricorsione.

Esempio

Per illustrare l'uso di EARLIER, è necessario creare uno scenario che calcola un valore di classificazione e quindi usa tale valore in altri calcoli.

L'esempio seguente si basa su questa semplice tabella, ProductSubcategory, che mostra le vendite totali per ogni ProductSubcategory.

Di seguito è riportata la tabella finale, inclusa la colonna di classificazione.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales SubcategoryRanking
18 Bib-Shorts $156,167.88 18
26 Bike Racks $220,720.70 14
27 Bike Stands $35,628.69 30
28 Bottles and Cages $59,342.43 24
5 Bottom Brackets $48,643.47 27
6 Brakes $62,113.16 23
19 Cappelli $47,934.54 28
7 Modelli a catena $8,847.08 35
29 Cleaners $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 Gloves $228,353.58 12
4 Manubrio $163,257.06 17
11 Headsets $57,659.99 25
31 Helmets $451,192.31 9
32 Hydration Packs $96,893.78 20
21 Jerseys $699,429.78 7
33 Luci 36
34 Locks $15,059.47 33
1 Mountain Bikes $34,305,864.29 2
12 Mountain Frames $4,511,170.68 4
35 Panniers 36
13 Pedals $140,422.20 19
36 Pumps $12,695.18 34
2 Road Bikes $40,551,696.34 1
14 Road Frames $3,636,398.71 5
15 Saddles $52,526.47 26
22 Pantaloncini $385,707.80 10
23 Calzini $28,337.85 31
24 Tights $189,179.37 16
37 Tires and Tubes $224,832.81 13
3 Touring Bikes $13,334,864.18 3
16 Touring Frames $1,545,344.02 6
25 Vests $240,990.04 11
17 Ruote $648,240.04 8

Creazione di un valore di classificazione

Per ottenere un valore di classificazione per un determinato valore in una riga è possibile contare il numero di righe, nella stessa tabella, che hanno un valore più grande (o più piccolo) rispetto a quello che viene confrontato. Questa tecnica restituisce un valore blank o zero per il valore massimo nella tabella, mentre i valori uguali avranno lo stesso valore di classificazione e il valore successivo (dopo i valori uguali) avrà un valore di classificazione non consecutivo. Vedere l'esempio seguente.

Viene creata una nuova colonna calcolata, SubCategorySalesRanking, usando la formula seguente.

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

Nei passaggi seguenti viene descritto il metodo di calcolo in modo più dettagliato.

  1. La funzione EARLIER ottiene il valore di TotalSubcategorySales per la riga corrente nella tabella. In questo caso, poiché il processo viene avviato, si tratta della prima riga della tabella

  2. EARLIER([TotalSubcategorySales]) restituisce $156,167.88, ovvero la riga corrente del ciclo esterno.

  3. La funzione FILTER restituisce ora una tabella in cui tutte le righe hanno un valore di TotalSubcategorySales maggiore di $156.167,88, ovvero il valore corrente per EARLIER.

  4. La funzione COUNTROWS conta le righe della tabella filtrata e assegna tale valore alla nuova colonna calcolata nella riga corrente più 1. L'aggiunta di 1 è necessaria per evitare che il valore classificato per primo diventi un valore Blank.

  5. La formula della colonna calcolata passa alla riga successiva e ripete i passaggi da 1 a 4. Questi passaggi vengono ripetuti finché non viene raggiunta la fine della tabella.

Il funzione EARLIER otterrà sempre il valore della colonna prima dell'operazione della tabella corrente. Se è necessario ottenere un valore dal ciclo precedente, impostare il secondo argomento su 2.

Funzione EARLIEST
Funzioni di filtro