Delen via


EARLIER

Van toepassing op:berekende kolomberekende tabelMeasureVisuele berekening

Retourneert de huidige value van de opgegeven kolom in een buitenste evaluatiepass van de genoemde kolom.

EARLIER is handig voor geneste berekeningen waarbij u een bepaalde value wilt gebruiken als invoer and berekeningen op basis van die invoer produceert. In Microsoft Excel kunt u dergelijke berekeningen alleen uitvoeren binnen de context van de huidige rij; In DAX kunt u echter de value van de invoer opslaan and vervolgens berekeningen maken met behulp van gegevens uit de hele tabel.

EARLIER wordt meestal gebruikt in de context van berekende kolommen.

Syntaxis

EARLIER(<column>, <number>)

Parameters

Term Definitie
column Een kolom or expressie die wordt omgezet in een kolom.
num (Optioneel) Een positief getal voor de buitenste evaluatie geslaagd.

De next evaluatieniveau wordt vertegenwoordigd door 1; twee niveaus worden weergegeven door 2 and, enzovoort.

Als u de standaardinstelling value weglaat, is dit 1.

value retourneren

De huidige value van rij, van column, op number van buitenste evaluatiepassen.

Uitzonderingen

Beschrijving van fouten

Opmerkingen

  • EARLIER slaagt if er een rijcontext is vóór het begin van de tabelscan. Anders wordt een errorgeretourneerd.

  • De prestaties van EARLIER kunnen traag zijn, omdat deze in theorie mogelijk een aantal bewerkingen moet uitvoeren die dicht bij het totale aantal rijen (in de kolom) hetzelfde getal liggen (afhankelijk van de syntaxis van de expressie). if u bijvoorbeeld 10 rijen in de kolom hebt, kunnen er ongeveer 100 bewerkingen nodig zijn; if u 100 rijen hebt, kunnen er bijna 10.000 bewerkingen worden uitgevoerd.

  • Deze functie wordt not ondersteund voor gebruik in de DirectQuery-modus wanneer deze wordt gebruikt in berekende kolommen or regels voor beveiliging op rijniveau (RLS).

Notitie

In de praktijk voert de VertiPaq in-memory analyse-engine optimalisaties uit om het werkelijke aantal berekeningen te verminderen, maar u moet voorzichtig zijn bij het maken van formules die recursie omvatten.

Voorbeeld

Om het gebruik van EARLIERte illustreren, is het noodzakelijk om een scenario te maken waarmee een rankvalueand vervolgens die rankvalue in andere berekeningen gebruikt.

Het volgende voorbeeld is gebaseerd op deze eenvoudige tabel, ProductSubcategory, waarin de totale verkoop voor elke ProductSubcategory wordt weergegeven.

De laatste tabel, inclusief de classificatiekolom, wordt hier weergegeven.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales SubcategorieRanking
18 Bib-Shorts $ 156,167,88 18
26 Fietsenrekken $ 220.720,70 14
27 Fietsstandaarden $ 35.628,69 30
28 Flessen and Kooien $ 59.342,43 24
5 Onderhaken $ 48.643,47 27
6 Remmen $ 62,113,16 23
19 Caps $ 47.934,54 28
7 Ketens $ 8.847,08 35
29 Reinigingsmiddelen $ 16.882,62 32
8 Cranksets $ 191,522,09 15
9 Derailleurs $ 64.965,33 22
30 Spatborden $ 41.974,10 29
10 Vorken $ 74.727,66 21
20 Handschoenen $ 228.353,58 12
4 Stuur $ 163.257,06 17
11 Headsets $ 57.659,99 25
31 Helmen $ 451,192,31 9
32 Hydratatiepakketten $ 96.893,78 20
21 Truien $ 699,429,78 7
33 Lichten 36
34 Sloten $ 15.059,47 33
1 Mountainbikes $ 34.305.864,29 2
12 Bergframes $ 4.511.170,68 4
35 Fietstassen 36
13 Pedalen $ 140,422,20 19
36 Pumps $ 12.695,18 34
2 Road Bikes $ 40.551.696,34 1
14 Wegframes $ 3.636.398,71 5
15 Zadels $ 52.526,47 26
22 Korte broek $ 385.707,80 10
23 Sokken $ 28.337,85 31
24 Panty $ 189,179,37 16
37 Banden and buizen $ 224.832,81 13
3 Toerfietsen $ 13.334.864,18 3
16 Toerframes $ 1.545.344,02 6
25 Vesten $ 240.990,04 11
17 Wielen $ 648,240,04 8

Een RankValue maken

Een manier om een rankvalue voor een bepaalde value in een rij te verkrijgen, is door het aantal rijen in dezelfde tabel met een count groter (value kleiner) te or dan het aantal rijen dat wordt vergeleken. Deze techniek retourneert een blankor nul value voor de hoogste value in de tabel, terwijl gelijk values dezelfde rankvalueandnextvalue (na het gelijk values) een niet-opeenvolgende rankvalueheeft. Zie de sample hieronder.

Er wordt een nieuwe berekende kolom, SubCategorySalesRanking, gemaakt met behulp van de volgende formule.

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

In de volgende stappen wordt de berekeningsmethode uitgebreider beschreven.

  1. Met de functie EARLIER wordt de value van TotalSubcategorySales- opgehaald voor de huidige rij in de tabel. Omdat het proces wordt gestart, is dit in dit geval de first rij in de tabel

  2. EARLIER([TotalSubcategorySales]) resulteert in $ 156.167,88, de huidige rij in de buitenste lus.

  3. De functie FILTERnow retourneert een tabel waarin all rijen een value van TotalSubcategorySales hebben groter dan $ 156.167,88 (dit is de huidige value voor EARLIER).

  4. De functie COUNTROWS telt de rijen van de gefilterde tabel and die value toewijst aan de nieuwe berekende kolom in de huidige rij plus 1. Het toevoegen van 1 is nodig om te voorkomen dat de hoogste value een Blankwordt.

  5. De formule voor de berekende kolom wordt verplaatst naar de rij nextand stap 1 tot en met 4 herhaalt. Deze stappen worden herhaald totdat het einde van de tabel is bereikt.

De functie EARLIER krijgt altijd de value van de kolom vóór de huidige tabelbewerking. If u eerder een value uit de lus moet ophalen, stelt u het argument second in op 2.

EARLIEST functieFilter functies