Udostępnij za pośrednictwem


WCZEŚNIEJ

Dotyczy: Obliczanie kolumny obliczeniowej tabeli Obliczeniowej Obliczenie wizualizacji

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

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

Funkcja EARLIER jest używana głównie w kontekście kolumn obliczeniowych.

Składnia

EARLIER(<column>, <number>)  

Parametry

Termin Definicja
column Kolumna lub wyrażenie, które jest rozpoznawane jako kolumna.
Num (Opcjonalnie) Liczba dodatnia do zewnętrznego przebiegu oceny.

Następny poziom oceny jest reprezentowany przez 1; dwa poziomy są reprezentowane przez 2 i tak dalej.

W przypadku pominięcia wartości domyślnej to 1.

Wartość zwracana

Bieżąca wartość wiersza z kolumny na liczbie przebiegów oceny zewnętrznej.

Wyjątki

Opis błędów

Uwagi

  • Funkcja EARLIER powiedzie się, jeśli istnieje kontekst wiersza przed rozpoczęciem skanowania tabeli. W przeciwnym razie zwraca błąd.

  • Wydajność funkcji 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). Jeśli na przykład masz 10 wierszy w kolumnie, może być wymaganych około 100 operacji; Jeśli masz 100 wierszy, może zostać wykonanych blisko 10 000 operacji.

  • Ta funkcja nie jest obsługiwana w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych lub regułach zabezpieczeń na poziomie wiersza.

Uwaga

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 funkcji EARLIER, należy utworzyć scenariusz, który oblicza wartość rangi, a następnie używa tej wartości klasyfikacji w innych obliczeniach.

Poniższy przykład jest oparty na tej prostej tabeli ProductSubcategory, która przedstawia łą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 i klatki 59 342,43 USD 24
5 Wsporniki 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 Korby $191,522.09 15
9 Przerzutki 64 965,33 USD 22
30 Błotniki 41 974,10 USD 29
10 Rozwidlenia 74 727,66 USD 21
20 Rękawiczki 228 353,58 USD 12
4 Kierownice 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 Jerseys 699 429,78 USD 7
33 Światła 36
34 Blokady 15 059,47 USD 33
1 Rowery górskie 34 305 864,29 USD 2
12 Mountain Frames 4511 170,68 USD 100
35 Sakwy 36
13 Pedały 140 422,20 USD 19
36 Pompy 12 695,18 USD 34
2 Rowery szosowe 40 551 696,34 USD 1
14 Road Frames $3,636,398,71 5
15 Siodła 52 526,47 USD 26
22 Spodenki 385 707,80 USD 10
23 Skarpety 28 337,85 USD 31
24 Rajstopy $189,179.37 16
37 Opony i rury 224 832,81 USD 13
3 Touring Bikes $13,334,864.18 3
16 Touring Frames 1545 344,02 USD 6
25 Kamizelki 240 990,04 USD 11
17 Wheels 648 240,04 USD 8

Tworzenie wartości rangi

Jednym ze sposobów uzyskania wartości klasyfikacji dla danej wartości w wierszu jest zliczenie liczby wierszy w tej samej tabeli, które mają wartość większą (lub mniejszą) niż ta, która jest porównywana. Ta technika zwraca wartość pustą lub zerową dla najwyższej wartości w tabeli, natomiast równe wartości będą miały tę samą wartość rangi, a następna wartość (po wartościach równych) będzie miała niesuądną wartość klasyfikacji. Zapoznaj się z poniższym przykładem.

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 wartość TotalSubcategorySales dla bieżącego wiersza w tabeli. W takim przypadku, ponieważ proces jest uruchamiany, jest to pierwszy wiersz w tabeli

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

  3. Funkcja FILTER zwraca teraz tabelę, w której wszystkie wiersze mają wartość TotalSubcategorySales większą niż $156,167.88 (co jest bieżącą wartością wcześniej).

  4. Funkcja COUNTROWS zlicza wiersze przefiltrowanej tabeli i przypisuje tę wartość do nowej kolumny obliczeniowej w bieżącym wierszu plus 1. Dodanie wartości 1 jest konieczne, aby zapobiec utracie wartości w pierwszej klasyfikacji jako pustej.

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

Funkcja EARLIER będzie zawsze pobierać wartość kolumny przed bieżącą operacją tabeli. Jeśli musisz uzyskać wartość z pętli przed tym, ustaw drugi argument na 2.

EARLIEST, funkcja
Funkcje filtrowania