Share via


EERDER

Van toepassing op: Berekende kolomBerekende tabelMetingVisuele berekening

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

EARLIER is handig voor geneste berekeningen waarbij u een bepaalde waarde als invoer wilt gebruiken en berekeningen wilt produceren op basis van die invoer. In Microsoft Excel kunt u dergelijke berekeningen alleen uitvoeren binnen de context van de huidige rij; In DAX kunt u echter de waarde van de invoer opslaan en 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 of expressie die wordt omgezet in een kolom.
Num (Optioneel) Een positief getal voor de buitenste evaluatie geslaagd.

Het volgende evaluatieniveau wordt vertegenwoordigd door 1; twee niveaus worden vertegenwoordigd door 2 enzovoort.

Als u de standaardwaarde weglaat, is 1.

Retourwaarde

De huidige waarde van rij, van kolom, op het aantal buitenste evaluatiepassen.

Uitzonderingen

Beschrijving van fouten

Opmerkingen

  • EARLIER slaagt als er een rijcontext is vóór het begin van de tabelscan. Anders wordt er een fout geretourneerd.

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

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

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.

Opmerking

Ter illustratie van het gebruik van EARLIER is het noodzakelijk om een scenario te maken waarmee een rangwaarde wordt berekend en die rangwaarde vervolgens wordt gebruikt in andere berekeningen.

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 en kooien $ 59.342,43 24
5 Trapassen $ 48.643,47 27
6 Remmen $ 62,113,16 23
19 Petten $ 47.934,54 28
7 Kettingen $ 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 Voorvorken $ 74.727,66 21
20 Handschoenen $ 228.353,58 12
4 Sturen $ 163.257,06 17
11 Headsets $ 57.659,99 25
31 Helmen $ 451,192,31 9
32 Hydratatiepakketten $ 96.893,78 20
21 Sporttruien $ 699,429,78 7
33 Lampen 36
34 Vergrendelingen $ 15.059,47 33
1 Mountainbikes $ 34.305.864,29 2
12 Mountainbikeframes $ 4.511.170,68 4
35 Fietstassen 36
13 Pedalen $ 140,422,20 19
36 Pompen $ 12.695,18 34
2 Racefietsen $ 40.551.696,34 1
14 Raceframes $ 3.636.398,71 5
15 Zadels $ 52.526,47 26
22 Shorts $ 385.707,80 10
23 Sokken $ 28.337,85 31
24 Panty $ 189,179,37 16
37 Banden en 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 rangschikkingswaarde maken

Een manier om een rangschikkingswaarde voor een bepaalde waarde in een rij te verkrijgen, is door het aantal rijen in dezelfde tabel te tellen dat een waarde groter (of kleiner) heeft dan de waarde die wordt vergeleken. Deze techniek retourneert een lege of nulwaarde voor de hoogste waarde in de tabel, terwijl gelijke waarden dezelfde rangschikkingswaarde hebben en de volgende waarde (na de gelijke waarden) een niet-opeenvolgende rangschikkingswaarde heeft. Zie het onderstaande voorbeeld.

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 waarde van TotalSubcategorySales opgehaald voor de huidige rij in de tabel. Omdat het proces wordt gestart, is dit in dit geval de eerste rij in de tabel

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

  3. De functie FILTER retourneert nu een tabel waarin alle rijen de waarde TotalSubcategorySales hebben die groter is dan $ 156.167,88 (de huidige waarde voor EARLIER).

  4. De functie COUNTROWS telt de rijen van de gefilterde tabel en wijst die waarde toe aan de nieuwe berekende kolom in de huidige rij plus 1. Het toevoegen van 1 is nodig om te voorkomen dat de hoogste gerangschikte waarde een lege waarde wordt.

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

Met de functie EARLIER wordt altijd de waarde van de kolom vóór de huidige tabelbewerking opgehaald. Als u een waarde uit de lus wilt ophalen, stelt u het tweede argument in op 2.

VROEGSTE, functie
Filterfuncties