Udostępnij za pośrednictwem


EARLIER

Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia wizualne

Zwraca bieżącą value określonej kolumny w zewnętrznym przebiegu oceny wymienionej kolumny.

EARLIER jest przydatna w przypadku obliczeń zagnieżdżonych, w których chcesz użyć określonego value jako danych wejściowych and tworzenia obliczeń na podstawie tych danych wejściowych. W programie Microsoft Excel można wykonywać takie obliczenia tylko w kontekście bieżącego wiersza; jednak w DAX można przechowywać value danych wejściowych and następnie wykonywać obliczenia przy użyciu danych z całej tabeli.

EARLIER jest najczęściej używana w kontekście kolumn obliczeniowych.

Składnia

EARLIER(<column>, <number>)

Parametry

Termin Definicja
column Wyrażenie or kolumny, które jest rozpoznawane jako kolumna.
num (Opcjonalnie) Liczba dodatnia do zewnętrznego przebiegu oceny.

Poziom oceny next jest reprezentowany przez 1; dwa poziomy są reprezentowane przez 2 and tak dalej.

W przypadku pominięcia domyślnego value to 1.

Zwracanie value

Bieżąca value wiersza z columnnumber zewnętrznego przebiegu oceny.

Wyjątki

Opis błędów

Uwagi

  • EARLIER kończy się powodzeniem if istnieje kontekst wiersza przed rozpoczęciem skanowania tabeli. W przeciwnym razie zwraca error.

  • Wydajność EARLIER może być niska, ponieważ teoretycznie może być konieczne wykonanie wielu operacji zbliżonych do całkowitej liczby wierszy (w kolumnie) o tej samej liczbie (w zależności od składni wyrażenia). Na przykład if masz 10 wierszy w kolumnie, może być wymaganych około 100 operacji; if można wykonać 100 wierszy, a następnie blisko 10 000 operacji.

  • Ta funkcja jest not obsługiwana do użycia w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych or reguł zabezpieczeń na poziomie wiersza.

Nuta

W praktyce aparat analityczny VertiPaq w pamięci wykonuje optymalizacje w celu zmniejszenia rzeczywistej liczby obliczeń, ale należy zachować ostrożność podczas tworzenia formuł obejmujących rekursję.

Przykład

Aby zilustrować użycie EARLIER, należy utworzyć scenariusz, który oblicza rankvalueand następnie używa tego rankvalue w innych obliczeniach.

Poniższy przykład jest oparty na tej prostej tabeli, ProductSubcategory, która pokazuje łączną sprzedaż dla każdej podkategorii ProductSubcategory.

Końcowa tabela, w tym kolumna klasyfikacji, jest pokazana tutaj.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales PodkategoriaRanking
18 Bib-Shorts 156 167,88 USD 18
26 Stojaki rowerowe 220 720,70 USD 14
27 Stojaki rowerowe 35 628,69 USD 30
28 Butelki and klatki 59 342,43 USD 24
5 Nawiasy dolne 48 643,47 USD 27
6 Hamulce 62 113,16 USD 23
19 Czapki 47 934,54 USD 28
7 Łańcuchy $8,847.08 35
29 Środki czyszczące 16 882,62 USD 32
8 Zestawy korb $191,522.09 15
9 Derailleurs 64 965,33 USD 22
30 Błotniki 41 974,10 USD 29
10 Widelce 74 727,66 USD 21
20 Rękawiczki 228 353,58 USD 12
4 Kierownicy 163 257,06 USD 17
11 Zestawy słuchawkowe 57 659,99 USD 25
31 Kaski $451,192.31 9
32 Pakiety nawilżające 96 893,78 USD 20
21 Koszulki 699 429,78 USD 7
33 Światła 36
34 Blokad 15 059,47 USD 33
1 Rowery górskie 34 305 864,29 USD 2
12 Ramy górskie 4511 170,68 USD 4
35 Sakwy 36
13 Pedały 140 422,20 USD 19
36 Pompy 12 695,18 USD 34
2 Szosowych 40 551 696,34 USD 1
14 Ramy drogowe $3,636,398,71 5
15 Siodła 52 526,47 USD 26
22 Spodenki 385 707,80 USD 10
23 Skarpetki 28 337,85 USD 31
24 Rajstopy $189,179.37 16
37 Opony and rurki 224 832,81 USD 13
3 Touring Bikes $13,334,864.18 3
16 Ramki koncertowe 1545 344,02 USD 6
25 Kamizelki 240 990,04 USD 11
17 Koła 648 240,04 USD 8

Tworzenie RankValue

Jednym ze sposobów uzyskania rankvalue dla danego value w wierszu jest count liczbę wierszy w tej samej tabeli, które mają value większe (or mniejsze) niż ta, która jest porównywana. Ta technika zwraca blankor zero value dla najwyższych value w tabeli, natomiast równe values będą miały te same rankvalueandnextvalue (po równym values) będą miały niesądową rankvalue. Zapoznaj się z poniższymi sample.

Nowa kolumna obliczeniowa, SubCategorySalesRanking, jest tworzona przy użyciu następującej formuły.

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

W poniższych krokach opisano bardziej szczegółowo metodę obliczania.

  1. Funkcja EARLIER pobiera valueTotalSubcategorySales dla bieżącego wiersza w tabeli. W takim przypadku, ponieważ proces jest uruchamiany, jest to wiersz first w tabeli

  2. EARLIER([TotalSubcategorySales]) daje 156 167,88 USD, bieżący wiersz w pętli zewnętrznej.

  3. Funkcja FILTERnow zwraca tabelę, w której wiersze all mają valueTotalSubcategorySales większe niż 156 167,88 USD (co jest bieżącym value dla EARLIER).

  4. Funkcja COUNTROWS zlicza wiersze filtrowanej tabeli, and przypisuje tę value do nowej kolumny obliczeniowej w bieżącym wierszu i 1. Dodanie 1 jest konieczne, aby zapobiec value najwyższego rankingu, aby stać się Blank.

  5. Formuła kolumny obliczeniowej przechodzi do wiersza nextand powtarza kroki od 1 do 4. Te kroki są powtarzane do momentu osiągnięcia końca tabeli.

Funkcja EARLIER będzie zawsze pobierać value kolumny przed bieżącą operacją tabeli. If musisz uzyskać value z pętli przed tym, ustaw argument second na 2.

funkcje funkcji