TIDIGARE

Gäller för:Beräknad kolumnBeräknad tabellMåttVisuell beräkning

Returnerar det aktuella värdet för den angivna kolumnen i ett yttre utvärderingspass för den nämnda kolumnen.

EARLIER är användbart för kapslade beräkningar där du vill använda ett visst värde som indata och skapa beräkningar baserat på dessa indata. I Microsoft Excel kan du bara göra sådana beräkningar inom ramen för den aktuella raden. I DAX kan du dock lagra värdet för indata och sedan göra beräkningar med hjälp av data från hela tabellen.

EARLIER används främst i kontexten för beräknade kolumner.

Syntax

EARLIER(<column>, <number>)  

Parametrar

Period Definition
column En kolumn eller ett uttryck som matchar en kolumn.
Num (Valfritt) Ett positivt tal till det yttre utvärderingspasset.

Nästa utvärderingsnivå representeras av 1; två nivåer ut representeras av 2 och så vidare.

När det utelämnas är standardvärdet 1.

Returvärde

Aktuellt värde för rad, från kolumn, vid antal yttre utvärderingspass.

Undantag

Beskrivning av fel

Kommentarer

  • EARLIER lyckas om det finns en radkontext före början av tabellgenomsökningen. Annars returneras ett fel.

  • Prestandan för EARLIER kan vara långsam eftersom den teoretiskt sett kan behöva utföra ett antal åtgärder som ligger nära det totala antalet rader (i kolumnen) gånger samma tal (beroende på uttryckets syntax). Om du till exempel har 10 rader i kolumnen kan cirka 100 åtgärder krävas. Om du har 100 rader kan nästan 10 000 åtgärder utföras.

  • Den här funktionen stöds inte för användning i DirectQuery-läge när den används i beräknade kolumner eller säkerhetsregler på radnivå (RLS).

Kommentar

I praktiken utför VertiPaqs minnesinterna analysmotor optimeringar för att minska det faktiska antalet beräkningar, men du bör vara försiktig när du skapar formler som inbegriper rekursion.

Exempel

För att illustrera användningen av EARLIER är det nödvändigt att skapa ett scenario som beräknar ett rankningsvärde och sedan använder det rangvärdet i andra beräkningar.

Följande exempel baseras på den här enkla tabellen ProductSubcategory, som visar den totala försäljningen för varje ProductSubcategory.

Den slutliga tabellen, inklusive rangordningskolumnen, visas här.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales UnderkategoriRankning
18 Bib-Shorts $156,167.88 18
26 Cykelställ $220,720.70 14
27 Cykelställ $35,628.69 30
28 Flaskor och burar $59,342.43 24
5 Bottenfäste $48,643.47 27
6 Bromsar $62,113.16 23
19 Mössor $47,934.54 28
7 Kedjor $8,847.08 35
29 Rengöringsmedel $16,882.62 32
8 Vevpartier $191,522.09 15
9 Växelförare $64,965.33 22
30 Fendrar $41,974.10 29
10 Gafflar $74,727.66 21
20 Handskar $228,353.58 12
4 Handtag $163,257.06 17
11 Headset $57,659.99 25
31 Hjälmar $451,192.31 9
32 Vätskepaket $96,893.78 20
21 Tröjor $699,429.78 7
33 Lampor 36
34 Lås $15,059.47 33
1 Mountainbikes $34,305,864.29 2
12 Ramar för mountainbikes $4,511,170.68 4
35 Korgar 36
13 Pedaler $140,422.20 19
36 Pumpar $12,695.18 34
2 Vägcyklar $40,551,696.34 1
14 Ramar för vägcyklar $3,636,398.71 5
15 Sadlar $52,526.47 26
22 Shorts $385,707.80 10
23 Strumpor $28,337.85 31
24 Strumpbyxor $189,179.37 16
37 Däck och rör $224,832.81 13
3 Touringcyklar $13,334,864.18 3
16 Ramar för touringcyklar $1,545,344.02 6
25 Västar $240,990.04 11
17 Hjul $648,240.04 8

Skapa ett rankningsvärde

Ett sätt att hämta ett rangvärde för ett givet värde på en rad är att räkna antalet rader i samma tabell som har ett värde som är större (eller mindre) än det som jämförs. Den här tekniken returnerar ett tomt eller nollvärde för det högsta värdet i tabellen, medan lika värden har samma rankningsvärde och nästa värde (efter lika med värdena) har ett icke-efterföljande rankningsvärde. Se exemplet nedan.

En ny beräknad kolumn, SubCategorySalesRanking, skapas med hjälp av följande formel.

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

Följande steg beskriver beräkningsmetoden mer detaljerat.

  1. Funktionen EARLIER hämtar värdet för TotalSubcategorySales för den aktuella raden i tabellen. I det här fallet, eftersom processen startas, är det den första raden i tabellen

  2. EARLIER([TotalSubcategorySales]) utvärderas till $156,167.88, den aktuella raden i den yttre loopen.

  3. Funktionen FILTER returnerar nu en tabell där alla rader har värdet TotalSubcategorySales större än 156 167,88 USD (vilket är det aktuella värdet för EARLIER).

  4. Funktionen COUNTROWS räknar raderna i den filtrerade tabellen och tilldelar det värdet till den nya beräknade kolumnen i den aktuella raden plus 1. Du måste lägga till 1 för att förhindra att det högst rankade värdet blir tomt.

  5. Formeln för den beräknade kolumnen flyttas till nästa rad och upprepar steg 1 till 4. De här stegen upprepas tills slutet av tabellen har nåtts.

Funktionen EARLIER hämtar alltid värdet för kolumnen före den aktuella tabellåtgärden. Om du behöver hämta ett värde från loopen innan det anger du det andra argumentet till 2.

Funktionen EARLIEST
Filterfunktioner