Zdieľať cez


EARLIER

Vzťahuje sa na:vypočítaný stĺpecvypočítanej tabuľkyvizuá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 columnna 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ĺpecPoradiePredajaPodkategórie.

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

V nasledujúcich krokoch je metóda výpočtu popísaná podrobnejšie.

  1. 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ľke

  2. EARLIER([TotalSubcategorySales]) sa vyhodnotí na 156 167,88 USD, aktuálny riadok vo vonkajšej slučke.

  3. 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 pre EARLIER).

  4. 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.

  5. 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.

funkcie EARLIESTfunkcie filtrovania