Condividi tramite


EARLIER

Si applica a:colonna calcolatatabella calcolataMeasurecalcolo visivo

Restituisce il value 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 value come input and produrre calcoli basati su tale input. In Microsoft Excel è possibile eseguire tali calcoli solo all'interno del contesto della riga corrente; Tuttavia, in DAX è possibile archiviare il value dell'input and 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
column Colonna or espressione che viene risolta in una colonna.
num (Facoltativo) Numero positivo al passaggio di valutazione esterno.

Il livello di valutazione next è rappresentato da 1; due livelli sono rappresentati da 2 and così via.

Se omesso value predefinito è 1.

Restituisce value

Il value corrente di riga, da column, in corrispondenza del number dei passaggi di valutazione esterni.

Eccezioni

Descrizione degli errori

Osservazioni

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

  • Le prestazioni di EARLIER potrebbero essere lente perché, teoricamente, potrebbe essere necessario eseguire una serie di operazioni vicine al numero totale di righe (nella colonna) volte allo stesso numero (a seconda della sintassi dell'espressione). Ad esempio, if si dispone di 10 righe nella colonna, potrebbero essere necessarie circa 100 operazioni; if si dispone di 100 righe, potrebbero essere eseguite fino a 10.000 operazioni.

  • Questa funzione è not supportata per l'uso in modalità DirectQuery quando viene usata nelle colonne calcolate or 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 è consigliabile prestare attenzione durante la creazione di formule che comportano la ricorsione.

Esempio

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

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

La tabella finale, inclusa la colonna di rango, è illustrata di seguito.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales SubcategoryRanking
18 Bib-Shorts $ 156,167,88 18
26 Rack per biciclette $ 220.720,70 14
27 Stand per biciclette $ 35.628,69 30
28 Bottiglie and Gabbie $ 59,342,43 24
5 Parentesi quadre inferiori $ 48.643,47 27
6 Freni $62.113.16 23
19 Tappi $ 47.934,54 28
7 Catene $8.847.08 35
29 Pulitori $ 16.882,62 32
8 Set di gradi $ 191.522,09 15
9 Deragliatori $ 64.965,33 22
30 Parafanghi $ 41.974,10 29
10 Forchette $ 74.727,66 21
20 Guanti $ 228,353,58 12
4 Manubrio $163.257.06 17
11 Cuffie $ 57.659,99 25
31 Caschi $451,192,31 9
32 Pacchetti di idratazione $ 96.893,78 20
21 Maglie $ 699,429,78 7
33 Fanaleria 36
34 Serrature $ 15.059,47 33
1 Mountain Bikes $34.305.864.29 2
12 Montature $ 4.511.170,68 4
35 Borse 36
13 Pedali $ 140,422,20 19
36 Pompe $ 12.695,18 34
2 Biciclette da strada $ 40.551.696,34 1
14 Telai stradali $ 3.636.398,71 5
15 Selle $ 52.526,47 26
22 Calzoncini $ 385,707,80 10
23 Calzini $ 28.337,85 31
24 Calzamaglia $ 189,179,37 16
37 Pneumatici and Tubi $ 224.832,81 13
3 Touring Bikes $13.334.864.18 3
16 Telai da turismo $1.545.344.02 6
25 Gilet $ 240.990,04 11
17 Ruote $648,240,04 8

Creazione di un RankValue

Un modo per ottenere un rankvalue per un determinato value in una riga consiste nell'count numero di righe, nella stessa tabella, con un value più grande (or più piccolo) rispetto a quello confrontato. Questa tecnica restituisce un blank zero orvalue per il value più alto nella tabella, mentre uguale values avrà lo stesso rankvalueandnextvalue (dopo l'uguale values) avrà un rankvaluenon consecutivo. Vedere il sample di seguito.

Una nuova colonna calcolata, SubCategorySalesRanking, viene creata usando la formula seguente.

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

I passaggi seguenti descrivono il metodo di calcolo in modo più dettagliato.

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

  2. EARLIER([TotalSubcategorySales]) restituisce $156.167.88, la riga corrente nel ciclo esterno.

  3. La funzione FILTERnow restituisce una tabella in cui all righe hanno un value di TotalSubcategorySales maggiore di $ 156.167.88 (ovvero il value corrente per EARLIER).

  4. La funzione COUNTROWS conta le righe della tabella filtrata and assegna tale value alla nuova colonna calcolata nella riga corrente più 1. L'aggiunta di 1 è necessaria per impedire che i value classificati più in alto diventino un Blank.

  5. La formula della colonna calcolata passa alla riga nextand ripete i passaggi da 1 a 4. Questi passaggi vengono ripetuti fino al raggiungimento della fine della tabella.

La funzione EARLIER otterrà sempre il value della colonna prima dell'operazione di tabella corrente. If è necessario ottenere un value dal ciclo prima di questo, impostare l'argomento second su 2.

EARLIEST funzioniFilter