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 column
number
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.
Funkcja
EARLIER
pobiera valueTotalSubcategorySales dla bieżącego wiersza w tabeli. W takim przypadku, ponieważ proces jest uruchamiany, jest to wiersz first w tabeliEARLIER([TotalSubcategorySales])
daje 156 167,88 USD, bieżący wiersz w pętli zewnętrznej.Funkcja
FILTER
now zwraca tabelę, w której wiersze all mają valueTotalSubcategorySales większe niż 156 167,88 USD (co jest bieżącym value dlaEARLIER
).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.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.
Related zawartości
funkcje