Begivenhed
31. mar., 23 - 2. apr., 23
Den ultimative Microsoft Fabric-, Power BI-, SQL- og AI-communityledede begivenhed. 31. marts til 2. april 2025.
Tilmeld dig i dagDenne browser understøttes ikke længere.
Opgrader til Microsoft Edge for at drage fordel af de nyeste funktioner, sikkerhedsopdateringer og teknisk support.
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.
EARLIER(<column>, <number>)
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. |
Den aktuelle value af række fra column
ved number
af ydre evalueringstrin.
Beskrivelse af fejl
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.
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 |
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.
= COUNTROWS(FILTER(ProductSubcategory, EARLIER(ProductSubcategory[TotalSubcategorySales])<ProductSubcategory[TotalSubcategorySales]))+1
I følgende trin beskrives beregningsmetoden mere detaljeret.
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
EARLIER([TotalSubcategorySales])
evalueres til $156.167,88, den aktuelle række i den ydre løkke.
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
).
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.
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.
Begivenhed
31. mar., 23 - 2. apr., 23
Den ultimative Microsoft Fabric-, Power BI-, SQL- og AI-communityledede begivenhed. 31. marts til 2. april 2025.
Tilmeld dig i dag