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.
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
EARLIER([TotalSubcategorySales]) utvärderas till $156,167.88, den aktuella raden i den yttre loopen.
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).
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.
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.
Relaterat innehåll
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för