Læs på engelsk

Del via


EARLIER

gælder for:beregnet kolonneberegnet tabelMeasurevisualiseringsberegning

Returnerer den aktuelle value for den angivne kolonne i et ydre evalueringsgennemløb for den nævnte kolonne.

EARLIER er nyttigt til indlejrede beregninger, hvor du vil bruge en bestemt value som input and producere beregninger baseret på dette input. I Microsoft Excel kan du kun foretage sådanne beregninger inden for konteksten af den aktuelle række. I DAX kan du dog gemme value af inputtet and derefter foretage beregninger ved hjælp af data fra hele tabellen.

EARLIER bruges mest i forbindelse med beregnede kolonner.

Syntaks

DAX
EARLIER(<column>, <number>)  

Parametre

Udtryk Definition
column En kolonne or udtryk, der omsættes til en kolonne.
num (Valgfrit) Et positivt tal til det ydre evalueringspas.

Det next evalueringsniveau er repræsenteret af 1. to niveauer ud repræsenteres af 2 and osv.

Når det udelades, er standard value 1.

Returner value

Den aktuelle value af række fra columnved number af ydre evalueringstrin.

Undtagelser

Beskrivelse af fejl

Bemærkninger

  • EARLIER lykkes, if der er en rækkekontekst før starten af tabelscanningen. Ellers returneres en error.

  • Ydeevnen for EARLIER kan være langsom, fordi den teoretisk set muligvis skal udføre en række handlinger, der er tæt på det samlede antal rækker (i kolonnen) gange det samme tal (afhængigt af udtrykkets syntaks). if du f.eks. har 10 rækker i kolonnen, kan der være behov for ca. 100 handlinger. if du har 100 rækker, kan der udføres tæt på 10.000 handlinger.

  • Denne funktion understøttes not til brug i DirectQuery-tilstand, når den bruges i beregnede kolonner or RLS-regler (row-level security).

Bemærk

I praksis udfører VertiPaq-analyseprogrammet i hukommelsen optimeringer for at reducere det faktiske antal beregninger, men du skal være forsigtig, når du opretter formler, der involverer rekursion.

Eksempel

For at illustrere brugen af EARLIERer det nødvendigt at oprette et scenarie, der beregner en rankvalueand bruger derefter rankvalue i andre beregninger.

Følgende eksempel er baseret på denne enkle tabel, ProductSubcategory, som viser det samlede salg for hver ProductSubcategory.

Den endelige tabel, herunder rangeringskolonnen, vises her.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales Underkategori -ranking
18 Bib-Shorts 156.167,88 USD 18
26 Cykelstativer 220.720,70 USD 14
27 Cykelstativer 35.628,69 USD 30
28 Flasker and bure 59.342,43 USD 24
5 Nederste kantede parenteser 48.643,47 USD 27
6 Bremser 62.113,16 USD 23
19 Caps 47.934,54 USD 28
7 Kæder 8.847,08 USD 35
29 Rengøringsmidler 16.882,62 USD 32
8 Krumtapper 191.522,09 USD 15
9 Derailleurs 64.965,33 USD 22
30 Fendere 41.974,10 USD 29
10 Gafler 74.727,66 USD 21
20 Handsker 228.353,58 USD 12
4 Styret 163.257,06 USD 17
11 Headsets 57.659,99 USD 25
31 Hjelme 451.192,31 USD 9
32 Hydreringspakker 96.893,78 USD 20
21 Trøjer 699.429,78 USD 7
33 Lys 36
34 Låse 15.059,47 USD 33
1 Mountainbikes 34.305.864,29 USD 2
12 Bjergrammer 4.511.170,68 USD 4
35 Cykeltasker 36
13 Pedaler 140.422,20 USD 19
36 Pumper 12.695,18 USD 34
2 Landevejscykler 40.551.696,34 USD 1
14 Vejrammer 3.636.398,71 USD 5
15 Sadler 52.526,47 USD 26
22 Shorts 385.707,80 USD 10
23 Sokker 28.337,85 USD 31
24 Strømpebukser 189.179,37 USD 16
37 Dæk and rør 224.832,81 USD 13
3 Touring Bikes 13.334.864,18 USD 3
16 Præsentationsrammer 1.545.344,02 USD 6
25 Veste 240.990,04 USD 11
17 Hjul 648.240,04 USD 8

Oprettelse af en RankValue

En måde at hente en rankvalue for en given value i en række på er ved at count antallet af rækker i den samme tabel, der har en value større (or mindre) end den, der sammenlignes. Denne teknik returnerer et blankor nul value for den højeste value i tabellen, mens lige values har samme rankvalueandnextvalue (efter den lige values) vil have en ikke-efterfølgende rankvalue. Se sample nedenfor.

En ny beregnet kolonne, SubCategorySalesRanking, oprettes ved hjælp af følgende formel.

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

I følgende trin beskrives beregningsmetoden mere detaljeret.

  1. Funktionen EARLIER henter value af TotalSubcategorySales- for den aktuelle række i tabellen. Da processen i dette tilfælde starter, er det den first række i tabellen

  2. EARLIER([TotalSubcategorySales]) evalueres til $156.167,88, den aktuelle række i den ydre løkke.

  3. Funktionen FILTER returnerer now en tabel, hvor all rækker har en value på TotalSubcategorySales, der er større end $156.167,88 (hvilket er den aktuelle value for EARLIER).

  4. Funktionen COUNTROWS tæller rækkerne i den filtrerede tabel and tildeler, som value til den nye beregnede kolonne i den aktuelle række plus 1. Tilføjelse af 1 er nødvendig for at forhindre, at den højest rangerede value bliver en Blank.

  5. Formlen for den beregnede kolonne flyttes til den next række and gentager trin 1 til 4. Disse trin gentages, indtil slutningen af tabellen er nået.

Funktionen EARLIER henter altid kolonnens value før den aktuelle tabelhandling. If du skal hente en value fra løkken før det, skal du angive argumentet second til 2.

EARLIEST funktion
Filter funktioner