Sdílet prostřednictvím


EARLIER

platí pro:Počítaný sloupecPočítaná tabulkamíravizuální

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

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 na základě daného vstupu. V Microsoft Excelu můžete takové výpočty provádět pouze v kontextu aktuálního řádku; V DAX však můžete uložit hodnotu vstupu a pak provést výpočet pomocí dat z celé tabulky.

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

Syntax

EARLIER(<column>, <number>)

Parametry

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

Návratová hodnota

Aktuální hodnota řádku z columnv number průchodů vnějšího vyhodnocení.

Výjimky

Popis chyb

Poznámky

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

  • Výkon EARLIER může být pomalý, protože teoreticky může být nutné 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í EARLIERje 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 každou 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 Dolní závorky 48 643,47 Kč 27
6 Brzdy 62 113,16 Kč 23
19 Čepice 47 934,54 Kč 28
7 Řetízky 8 847,08 Kč 35
29 Uklízečky 16 882,62 Kč 32
8 Klikové sady 191 522,09 Kč 15
9 Derailleurs 64 965,33 Kč 22
30 Blatníky 41 974,10 Kč 29
10 Vidličky 74 727,66 Kč 21
20 Rukavice 228 353,58 Kč 12
4 Řidítka 163 257,06 Kč 17
11 Sluchátka 57 659,99 Kč 25
31 Helmy 451 192,31 Kč 9
32 Hydrační balíčky 96 893,78 Kč 20
21 Pletené vesty 699 429,78 Kč 7
33 Světla 36
34 Zámky 15 059,47 Kč 33
1 Horská kola 34 305 864,29 Kč 2
12 Horské rámy 4 511 170,68 Kč 4
35 Košíky 36
13 Pedály 140 422,20 Kč 19
36 Pumpy 12 695,18 Kč 34
2 Silniční kola 40 551 696,34 Kč 1
14 Silniční rámy 3 636 398,71 Kč 5
15 Sedla 52 526,47 Kč 26
22 Šortky 385 707,80 Kč 10
23 Ponožky 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 Prohlídkové snímky 1 545 344,02 Kč 6
25 Vesty 240 990,04 Kč 11
17 Kola 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]) vyhodnotí hodnotu 156 167,88 KČ, aktuální řádek ve vnější smyčce.

  3. Funkce FILTER nyní vrátí tabulku, ve které mají všechny řádky 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.

funkcí filtru