EARLIER
Vzťahuje sa na:vypočítaný stĺpec
vypočítanej tabuľky
vizuálového výpočtu
Vráti aktuálnu hodnotu zadaného stĺpca v prechode vonkajšieho vyhodnotenia spomínaného stĺpca.
EARLIER je užitočná pri vnorených výpočtoch, kde chcete použiť určitú hodnotu ako vstup a vyprodukovať výpočty na základe tohto vstupu. V Microsoft Exceli môžete tieto výpočty vykonávať iba v kontexte aktuálneho riadka. v DAX však môžete uložiť hodnotu vstupu a potom vykonať výpočet pomocou údajov z celej tabuľky.
EARLIER sa väčšinou používa v kontexte vypočítaných stĺpcov.
Syntax
EARLIER(<column>, <number>)
Parametre
Termín | Definícia |
---|---|
column |
Stĺpec alebo výraz, ktorý sa vyrieši do stĺpca. |
num |
(Voliteľné) Kladné číslo do prechodu vonkajšieho vyhodnotenia. Nasledujúca úroveň vyhodnotenia mimo je zastúpená číslom 1; dve úrovne mimo sú zastúpené číslom 2 a tak ďalej. Pri vynechaní je predvolená hodnota 1. |
Vrátená hodnota
Aktuálna hodnota riadka z column
na number
prechodov vonkajšieho vyhodnotenia.
Výnimky
Popis chýb
Poznámky
EARLIER
je úspešná, ak existuje kontext riadka pred začiatkom kontroly tabuľky. V opačnom prípade vráti chybu.Výkon
EARLIER
môže byť pomalý, pretože teoreticky môže byť potrebné vykonať niekoľko operácií, ktoré sa blížia k celkovému počtu riadkov (v stĺpci) vynásobeným rovnakým číslom (v závislosti od syntaxe výrazu). Ak máte napríklad v stĺpci 10 riadkov, môže sa vyžadovať približne 100 operácií. Ak máte 100 riadkov, môže sa vykonať takmer 10 000 operácií.Táto funkcia nie je podporovaná na použitie v režime DirectQuery, keď sa používa vo vypočítaných stĺpcoch alebo v pravidlách zabezpečenia na úrovni riadkov (RLS).
Nota
V praxi nástroj na analýzu v pamäti VertiPaq vykonáva optimalizáciu na zníženie skutočného počtu výpočtov, ale pri vytváraní vzorcov, ktoré zahŕňajú rekurzie, by ste mali postupovať opatrne.
Príklad
Na ilustráciu používania EARLIERje potrebné vytvoriť scenár, ktorý vypočíta hodnotu poradia a potom použije túto hodnotu poradia v iných výpočtoch.
Nasledujúci príklad vychádza z tejto jednoduchej tabuľky ProductSubcategory
, ktorá zobrazuje celkový predaj pre každú podkategóriu ProductSubcategory.
Na tomto mieste sa zobrazí konečná tabuľka vrátane stĺpca poradia.
ProductSubcategoryKey (KľúčPodkategórieproduktov) | EnglishProductSubcategoryName (AnglickýNázovPodkategórieProduktu) | CelkovýPredajPodkategórie | SubcategoryRanking (Podkategória)Ranking |
---|---|---|---|
18 | Bib-Shorts | 156 167,88 $ | 18 |
26 | Bike Racks | 220 720,70 $ | 14 |
27 | Stojany na bicykle | 35 628,69 $ | 30 |
28 | Bottles and Cages | 59 342,43 $ | 24 |
5 | Bottom Brackets | 48 643,47 $ | 27 |
6 | Brzdy | 62 113,16 $ | 23 |
19 | Čiapky | 47 934,54 $ | 28 |
7 | Reťaze | 8 847,08 $ | 35 |
29 | Čističe | 16 882,62 $ | 32 |
8 | Množiny kačiek | 191 522,09 $ | 15 |
9 | Vykoľajiť | 64 965,33 $ | 22 |
30 | Blatníky | 41 974,10 $ | 29 |
10 | Vidličky | 74 727,66 $ | 21 |
20 | Rukavice | 228 353,58 $ | 12 |
4 | Riadidlá | 163 257,06 $ | 17 |
11 | Slúchadlá | 57 659,99 $ | 25 |
31 | Prilby | 451 192,31 $ | 9 |
32 | Hydratačné balíky | 96 893,78 $ | 20 |
21 | Dresy | 699 429,78 $ | 7 |
33 | Svetla | 36 | |
34 | Zámky | 15 059,47 $ | 33 |
1 | Horské bicykle | 34 305 864,29 $ | 2 |
12 | Mountain Frames | 4 511 170,68 USD | 4 |
35 | Panniers | 36 | |
13 | Pedále | 140 422,20 $ | 19 |
36 | Čerpadlá | 12 695,18 $ | 34 |
2 | Cestné bicykle | 40 551 696,34 USD | 1 |
14 | Road Frames | 3 636 398,71 USD | 5 |
15 | Sedla | 52 526,47 $ | 26 |
22 | Šortky | 385 707,80 $ | 10 |
23 | Ponožky | 28 337,85 $ | 31 |
24 | Pančucháče | 189 179,37 $ | 16 |
37 | Tires and Tubes | 224 832,81 $ | 13 |
3 | Turistické bicykle | 13 334 864,18 USD | 3 |
16 | Touring Frames | 1 545 344,02 $ | 6 |
25 | Vesty | $240,990.04 | 11 |
17 | Kolesá | 648 240,04 $ | 8 |
Vytvorenie hodnoty poradia
Jedným zo spôsobov získania hodnoty poradia pre danú hodnotu v riadku je spočítať počet riadkov v tej istej tabuľke, ktoré majú hodnotu väčšiu (alebo menšiu), než je porovnávaná hodnota. Táto technika vráti prázdnu alebo nulovú hodnotu pre najvyššiu hodnotu v tabuľke, zatiaľ čo rovnaké hodnoty budú mať rovnakú hodnotu poradia a nasledujúca hodnota (po týchto rovnakých hodnotách) bude mať hodnotu nekonzekutívnej poradia. Pozrite si ukážku nižšie.
Pomocou nasledujúceho vzorca sa vytvorí nový vypočítaný stĺpec
= COUNTROWS(FILTER(ProductSubcategory, EARLIER(ProductSubcategory[TotalSubcategorySales])<ProductSubcategory[TotalSubcategorySales]))+1
V nasledujúcich krokoch je metóda výpočtu popísaná podrobnejšie.
Funkcia
EARLIER
získa hodnotu TotalSubcategorySales pre aktuálny riadok v tabuľke. Keďže proces sa začína, v tomto prípade ide o prvý riadok v tabuľkeEARLIER([TotalSubcategorySales])
sa vyhodnotí na 156 167,88 USD, aktuálny riadok vo vonkajšej slučke.Funkcia
FILTER
teraz vráti tabuľku, v ktorej majú všetky riadky hodnotu CelkovýPredajPodkategórie väčšiu ako 156 167,88 USD (čo je aktuálna hodnota preEARLIER
).Funkcia
COUNTROWS
spočíta riadky filtrovanej tabuľky a priradí túto hodnotu k novému vypočítanému stĺpcu v aktuálnom riadku plus 1. Je potrebné pridať 1, aby ste zabránili tomu, že s najvyššou hodnotou bude prázdna hodnota.Vzorec vypočítaného stĺpca sa presunie do nasledujúceho riadka a zopakuje kroky 1 až 4. Tieto kroky sa opakujú až do konca tabuľky.
Funkcia EARLIER
vždy získa hodnotu stĺpca pred aktuálnou operáciou tabuľky. Ak potrebujete získať hodnotu zo slučky predtým, nastavte druhý argument na hodnotu 2.
Súvisiaci obsah
funkcie EARLIESTfunkcie filtrovania