Sdílet prostřednictvím


EARLIER

platí pro:počítaný sloupecPočítaná tabulkaMeasure vizuálu

Vrátí aktuální value zadaného sloupce ve vnějším průchodu vyhodnocení uvedeného sloupce.

EARLIER je užitečná pro vnořené výpočty, ve kterých chcete jako vstupní value použít určitou and. V Microsoft Excelu můžete takové výpočty provádět pouze v kontextu aktuálního řádku; V DAX ale můžete uložit value vstupního and 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 or výraz, který se přeloží na sloupec.
num (Volitelné) Kladné číslo pro vnější vyhodnocení.

Úroveň vyhodnocení next je reprezentována hodnotou 1; dvě úrovně jsou reprezentovány 2 and tak dále.

Pokud vynecháte výchozí value je 1.

Vrácení value

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

Výjimky

Popis chyb

Poznámky

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

  • 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). Například if máte ve sloupci 10 řádků, může se vyžadovat přibližně 100 operací; if máte 100 řádků a pak může být provedeno téměř 10 000 operací.

  • Tato funkce je not podporována pro použití v režimu DirectQuery při použití v počítaných sloupcích or pravidla 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á rankvalueand pak použije tento rankvalue 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 and 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 and trubek 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í RankValue

Jedním ze způsobů, jak získat rankvalue pro danou value na řádku, je count počtu řádků ve stejné tabulce, které mají value větší (or menší) než ten, který se porovnává. Tato technika vrátí blankor nula value pro nejvyšší value v tabulce, zatímco stejná values bude mít stejnou rankvalueandnextvalue (za stejnou values) bude mít ne sobě jdoucí rankvalue. Podívejte se na sample níže.

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á valuetotalsubcategorySales pro aktuální řádek v tabulce. V tomto případě, protože proces začíná, je to first řádek v tabulce.

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

  3. Funkce FILTERnow vrátí tabulku, kde all řádky mají valueTotalSubcategorySales větší než 156 167,88 USD (což je aktuální value pro EARLIER).

  4. Funkce COUNTROWS spočítá řádky filtrované tabulky and přiřadí, které value novému počítanému sloupci v aktuálním řádku plus 1. Přidání hodnoty 1 je potřeba, aby se value s nejvyšším pořadím stal Blank.

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

Funkce EARLIER vždy získá value sloupce před aktuální operací tabulky. If potřebujete získat value ze smyčky předtím, nastavte argument second na hodnotu 2.

EARLIEST funkceFilter