DŘÍVE

Platí pro:Calculated columnCalculated tableMeasureVisual calculation

Vrátí aktuální hodnotu zadaného sloupce ve vnějším zkušebním průchodu zmíněného sloupce.

FUNKCE EARLIER je užitečná pro vnořené výpočty, ve kterých chcete jako vstup použít určitou hodnotu a provádět výpočty založené na tomto vstupu. V Microsoft Excelu můžete takové výpočty provádět pouze v kontextu aktuálního řádku; V jazyce DAX však můžete uložit hodnotu vstupu a pak provést výpočet pomocí dat z celé tabulky.

FUNKCE EARLIER se většinou používá v kontextu počítaných sloupců.

Syntaxe

EARLIER(<column>, <number>)  

Parametry

Pojem definice
column Sloupec nebo výraz, který se překládá na sloupec.
Num (Volitelné) Kladné číslo pro vnější vyhodnocení.

Další úroveň hodnocení je reprezentována hodnotou 1; dvě úrovně jsou reprezentovány 2 a tak dále.

Pokud vynecháte výchozí hodnotu 1.

Vrácená hodnota

Aktuální hodnota řádku ze sloupce při počtu průchodů vnějšího vyhodnocení.

Výjimky

Popis chyb

Poznámky

  • Funkce EARLIER proběhne úspěšně, pokud je před začátkem prohledávání tabulky kontext řádku. V opačném případě vrátí chybu.

  • Výkon funkce EARLIER může být pomalý, protože teoreticky může muset provést řadu operací, které se blíží celkovému počtu řádků (ve sloupci) krát stejnému číslu (v závislosti na syntaxi výrazu). Pokud máte například ve sloupci 10 řádků, může být vyžadováno přibližně 100 operací; Pokud máte 100 řádků, může se provést téměř 10 000 operací.

  • Tato funkce není podporována pro použití v režimu DirectQuery při použití v počítaných sloupcích nebo pravidlech zabezpečení na úrovni řádků (RLS).

Poznámka:

V praxi analytický modul VertiPaq v paměti provádí optimalizace, aby snížil skutečný počet výpočtů, ale při vytváření vzorců, které zahrnují rekurzi, byste měli být opatrní.

Příklad

Pro ilustraci použití funkce EARLIER je nutné vytvořit scénář, který vypočítá hodnotu pořadí a pak použije tuto hodnotu pořadí v jiných výpočtech.

Následující příklad je založen na této jednoduché tabulce ProductSubcategory, která zobrazuje celkové prodeje pro jednotlivé kategorie ProductSubcategory.

Tady je zobrazená konečná tabulka včetně sloupce řazení.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales Řazení podkategorie
18 Bib-Shorts 156 167,88 Kč 18
26 Stojany na kola 220 720,70 Kč 14
27 Kolové stojany 35 628,69 Kč 30
28 Láhev a klece 59 342,43 Kč 24
5 Bottom Brackets 48 643,47 Kč 27
6 Brakes 62 113,16 Kč 23
19 Caps 47 934,54 Kč 28
7 Chains 8 847,08 Kč 35
29 Čističe 16 882,62 Kč 32
8 Cranksets 191 522,09 Kč 15
9 Derailleurs 64 965,33 Kč 22
30 Blatníky 41 974,10 Kč 29
10 Forky 74 727,66 Kč 21
20 Rukavice 228 353,58 Kč 12
4 Handlebars 163 257,06 Kč 17
11 Sluchátka 57 659,99 Kč 25
31 Přilby 451 192,31 Kč 9
32 Hydrační balíčky 96 893,78 Kč 20
21 Jerseys 699 429,78 Kč 7
33 Světla 36
34 Zámky 15 059,47 Kč 33
0 Mountain Bikes 34 305 864,29 Kč 2
12 Mountain Frames 4 511 170,68 Kč 4
35 Košíky 36
13 Pedály 140 422,20 Kč 19
36 Čerpadla 12 695,18 Kč 34
2 Road Bikes 40 551 696,34 Kč 0
14 Road Frames 3 636 398,71 Kč 5
15 Sedla 52 526,47 Kč 26
22 Šortky 385 707,80 Kč 10
23 Socks 28 337,85 Kč 31
24 Punčocháče 189 179,37 Kč 16
37 Pneumatiky a trubky 224 832,81 Kč 13
3 Touring Bikes 13 334 864,18 Kč 3
16 Touring Frames 1 545 344,02 Kč 6
25 Vesty 240 990,04 Kč 11
17 Wheels 648 240,04 Kč 8

Vytvoření hodnoty pořadí

Jedním ze způsobů, jak získat hodnotu pořadí pro danou hodnotu v řádku, je spočítat počet řádků ve stejné tabulce, které mají hodnotu větší (nebo menší) než ta, která se porovnává. Tato technika vrátí prázdnou nebo nulovou hodnotu pro nejvyšší hodnotu v tabulce, zatímco stejné hodnoty budou mít stejnou hodnotu pořadí a další hodnota (za stejnými hodnotami) bude mít po sobě jdoucí hodnotu pořadí. Podívejte se na následující ukázku.

Nový počítaný sloupec SubCategorySalesRanking se vytvoří pomocí následujícího vzorce.

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

Následující kroky popisují metodu výpočtu podrobněji.

  1. Funkce EARLIER získá hodnotu TotalSubcategorySales pro aktuální řádek v tabulce. V tomto případě, protože proces začíná, je to první řádek v tabulce.

  2. EARLIER([TotalSubcategorySales]) se vyhodnotí jako 156 167,88 USD, aktuální řádek ve vnější smyčce.

  3. Funkce FILTER teď vrátí tabulku, kde všechny řádky mají hodnotu TotalSubcategorySales větší než 156 167,88 USD (což je aktuální hodnota pro EARLIER).

  4. Funkce COUNTROWS spočítá řádky filtrované tabulky a přiřadí ji novému počítanému sloupci v aktuálním řádku plus 1. Pokud chcete zabránit tomu, aby se nejvyšší seřazená hodnota stala prázdnou, je potřeba přidat 1.

  5. Vzorec počítaného sloupce se přesune na další řádek a zopakuje kroky 1 až 4. Tyto kroky se opakují, dokud nedosáhnete konce tabulky.

Funkce EARLIER vždy získá hodnotu sloupce před aktuální operací tabulky. Pokud potřebujete získat hodnotu ze smyčky, nastavte druhý argument na hodnotu 2.

EARLIEST
Funkce filtru