KORÁBBI
A következőre vonatkozik: Számított oszlop Számított tábla Mérték vizualizáció számítása
A megadott oszlop aktuális értékét adja vissza az említett oszlop külső próbaidőszakában.
Az EARLIER olyan beágyazott számításokhoz hasznos, amelyekben egy bizonyos értéket szeretne bemenetként használni, és az adott bemenet alapján szeretne számításokat végezni. A Microsoft Excelben ezeket a számításokat csak az aktuális sor kontextusában végezheti el; a DAX-ban azonban tárolhatja a bemenet értékét, majd számítást végezhet a teljes tábla adataival.
Az EARLIER függvényt többnyire számított oszlopok kontextusában használják.
Syntax
EARLIER(<column>, <number>)
Paraméterek
Időszak | Definíció |
---|---|
oszlop | Oszlop vagy kifejezés, amely egy oszlopra van feloldva. |
Num | (Nem kötelező) Pozitív szám a külső próbaidőszakra. A következő kiértékelési szintet 1 jelöli; két szint ki van jelölve 2 és így tovább. Ha nem adja meg az alapértelmezett értéket, az 1. |
Visszaadott érték
A sor aktuális értéke oszlopból, a külső kiértékelési passzok számával.
Kivételek
A hibák leírása
Megjegyzések
Az EARLIER akkor sikeres, ha a táblázatvizsgálat kezdete előtt sorkörnyezet van. Ellenkező esetben hibát ad vissza.
Az EARLIER teljesítménye lassú lehet, mert elméletileg előfordulhat, hogy több olyan műveletet kell végrehajtania, amely közel van a sorok teljes számához (az oszlopban) azonos számmal (a kifejezés szintaxisától függően). Ha például 10 sor van az oszlopban, körülbelül 100 műveletre lehet szükség; ha 100 sorból áll, akkor közel 10 000 műveletet hajthat végre.
Ez a függvény nem támogatott DirectQuery módban, ha számított oszlopokban vagy sorszintű biztonsági (RLS) szabályokban használják.
Feljegyzés
A gyakorlatban a VertiPaq memóriabeli elemzési motor optimalizálásokat végez a számítások tényleges számának csökkentése érdekében, de óvatosnak kell lennie a rekurziót tartalmazó képletek létrehozásakor.
Példa
Az EARLIER használatának szemléltetéséhez létre kell készíteni egy olyan forgatókönyvet, amely kiszámít egy rangsorértéket, majd ezt a rangsorértéket más számításokban használja.
Az alábbi példa a ProductSubcategory egyszerű táblán alapul, amely az egyes ProductSubcategory-termékek teljes értékesítését mutatja.
Itt látható az utolsó táblázat, a rangsor oszlopot is beleértve.
ProductSubcategoryKey | EnglishProductSubcategoryName | TotalSubcategorySales | SubcategoryRanking |
---|---|---|---|
18 | Bib-Shorts | 156 167,88 USD | 18 |
26 | Kerékpártartók | 220 720,70 USD | 14 |
27 | Kerékpárállványok | 35 628,69 USD | 30 |
28 | Palackok és ketrecek | 59 342,43 USD | 24 |
5 | Középcsapágyak | 48 643,47 USD | 27 |
6 | Fékek | 62 113,16 USD | 23 |
19 | Sapkák | 47 934,54 USD | 28 |
7 | Láncok | 8 847,08 USD | 35 |
29 | Tisztítószerek | 16 882,62 USD | 32 |
8 | Hajtóművek | 191 522,09 USD | 15 |
9 | Láncváltók | 64 965,33 USD | 22 |
30 | Sárvédők | 41 974,10 USD | 29 |
10 | Villa | 74 727,66 USD | 21 |
20 | Kesztyű | 228 353,58 USD | 12 |
4 | Kormányok | 163 257,06 USD | 17 |
11 | Fejhallgatók | 57 659,99 USD | 25 |
31 | Sisakok | 451 192,31 USD | 9 |
32 | Hidratálási csomagok | 96 893,78 USD | 20 |
21 | Mezek | 699 429,78 USD | 7 |
33 | Fények | 36 | |
34 | Zárolások | 15 059,47 USD | 33 |
0 | Hegyi kerékpárok | 34 305 864,29 USD | 2 |
12 | Hegyi keretek | 4 511 170,68 USD | 4 |
35 | Panniers | 36 | |
13 | Pedálok | 140 422,20 USD | 19 |
36 | Szivattyúk | 12 695,18 USD | 34 |
2 | Országúti kerékpárok | 40 551 696,34 USD | 0 |
14 | Vázak | 3 636 398,71 USD | 5 |
15 | Nyergek | 52 526,47 USD | 26 |
22 | Rövidnadrág | 385 707,80 USD | 10 |
23 | Zoknik | 28 337,85 USD | 31 |
24 | Harisnyanadrág | 189 179,37 USD | 16 |
37 | Gumik és csövek | 224 832,81 USD | 13 |
3 | Túrakerékpárok | 13 334 864,18 USD | 3 |
16 | Túra váz | 1 545 344,02 USD | 6 |
25 | Mellények | 240 990,04 USD | 11 |
17 | Kerekek | 648 240,04 USD | 8 |
Rangsorérték létrehozása
Egy sor adott értékének rangsorértékének egyik módja, ha megszámlálja azoknak a soroknak a számát ugyanabban a táblában, amelyek értéke nagyobb (vagy kisebb), mint az összehasonlítandó. Ez a technika egy üres vagy nulla értéket ad vissza a tábla legmagasabb értékéhez, míg az egyenlő értékek azonos rangértéket, a következő érték (az egyenlő értékek után) pedig nem egymást követő rangértéket kap. Tekintse meg az alábbi mintát.
Az alábbi képlettel létrejön egy új számított oszlop, a SubCategorySalesRanking.
= COUNTROWS(FILTER(ProductSubcategory, EARLIER(ProductSubcategory[TotalSubcategorySales])<ProductSubcategory[TotalSubcategorySales]))+1
Az alábbi lépések részletesebben ismertetik a számítási módszert.
Az EARLIER függvény a tábla aktuális sorához tartozó TotalSubcategorySales értéket kapja meg. Ebben az esetben, mivel a folyamat elkezdődött, ez a tábla első sora
AZ EARLIER([TotalSubcategorySales]) 156 167,88 usd értéket értékel ki, amely a külső hurok aktuális sora.
A FILTER függvény most egy olyan táblát ad vissza, amelyben az összes sor értéke 156 167,88 USD-nél nagyobb TotalSubcategorySales (ez az EARLIER aktuális értéke).
A COUNTROWS függvény megszámolja a szűrt tábla sorait, és hozzárendeli ezt az értéket az aktuális sor új számított oszlopához plusz 1. Az 1 hozzáadására azért van szükség, hogy a legfelső rangsorolt érték ne váljon üressé.
A számított oszlop képlete a következő sorba kerül, és megismétli az 1–4. lépést. Ezek a lépések mindaddig ismétlődnek, amíg el nem éri a táblázat végét.
Az EARLIER függvény mindig az aktuális táblaművelet előtt kapja meg az oszlop értékét. Ha az előtte lévő hurokból szeretne értéket lekérni, állítsa a második argumentumot 2 értékre.