Freigeben über


EARLIER

Gilt für:Berechnete SpalteBerechnete TabelleMeasurevisuelle Berechnung

Gibt den aktuellen Wert der angegebenen Spalte in einem äußeren Auswertungsdurchlauf der erwähnten Spalte zurück.

EARLIER ist nützlich für geschachtelte Berechnungen, bei denen Sie einen bestimmten Wert als Eingabe verwenden und Berechnungen basierend auf dieser Eingabe erstellen möchten. In Microsoft Excel können Sie solche Berechnungen nur im Kontext der aktuellen Zeile ausführen. In DAX können Sie jedoch den Wert der Eingabe speichern und dann die Berechnung mithilfe von Daten aus der gesamten Tabelle vornehmen.

EARLIER wird hauptsächlich im Kontext berechneter Spalten verwendet.

Syntax

EARLIER(<column>, <number>)

Parameter

Ausdruck Definition
column Eine Spalte oder ein Ausdruck, der in eine Spalte aufgelöst wird.
num (Optional) Eine positive Zahl für den äußeren Auswertungsdurchlauf.

Die nächste Bewertungsstufe wird durch 1 dargestellt; Zwei Ebenen werden durch 2 usw. dargestellt.

Wenn der Standardwert nicht angegeben wird, ist 1.

Rückgabewert

Der aktuelle Wert der Zeile aus columnbei number der äußeren Auswertungsdurchläufe.

Ausnahmen

Beschreibung von Fehlern

Bemerkungen

  • EARLIER erfolgreich, wenn vor dem Beginn der Tabellenüberprüfung ein Zeilenkontext vorhanden ist. Andernfalls wird ein Fehler zurückgegeben.

  • Die Leistung von EARLIER kann langsam sein, da theoretisch eine Reihe von Vorgängen ausgeführt werden muss, die nahe der Gesamtanzahl der Zeilen (in der Spalte) liegen, die gleiche Zahl (abhängig von der Syntax des Ausdrucks). Wenn Sie beispielsweise über 10 Zeilen in der Spalte verfügen, können ungefähr 100 Vorgänge erforderlich sein; Wenn Sie über 100 Zeilen verfügen, werden möglicherweise 10.000 Vorgänge ausgeführt.

  • Diese Funktion wird für die Verwendung im DirectQuery-Modus nicht unterstützt, wenn sie in berechneten Spalten oder Sicherheitsregeln auf Zeilenebene (RLS) verwendet wird.

Anmerkung

In der Praxis führt das In-Memory Analytics-Modul vertiPaq Optimierungen durch, um die tatsächliche Anzahl von Berechnungen zu reduzieren, aber Sie sollten vorsichtig sein, wenn Sie Formeln erstellen, die Rekursion beinhalten.

Beispiel

Um die Verwendung von EARLIERzu veranschaulichen, ist es erforderlich, ein Szenario zu erstellen, das einen Rangwert berechnet und dann diesen Rangwert in anderen Berechnungen verwendet.

Das folgende Beispiel basiert auf dieser einfachen Tabelle, ProductSubcategory, die den Gesamtumsatz für jede ProductSubcategory anzeigt.

Die endgültige Tabelle, einschließlich der Bewertungsspalte, wird hier angezeigt.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales SubcategoryRanking
18 Bib-Shorts $156,167,88 18
26 Fahrradgestelle $220,720,70 14
27 Fahrradständer $35.628,69 30
28 Flaschen und Käfige $59,342,43 24
5 Untere Klammern $48,643,47 27
6 Bremsen $62.113.16 23
19 Mützen $ 47.934,54 28
7 Ketten $8,847,08 35
29 Reinigung $16,882,62 32
8 Kurbelsets $191,522,09 15
9 Derailleurs $64.965.33 22
30 Kotflügel $41.974.10 29
10 Gabeln $74.727,66 21
20 Handschuhe $228,353,58 12
4 Lenker $163,257,06 17
11 Headsets $57.659,99 25
31 Helme $451,192,31 9
32 Hydratation Packs $96.893.78 20
21 Trikots $699,429,78 7
33 Lichter 36
34 Schlösser $ 15.059,47 33
1 Mountainbikes $ 34.305.864.29 2
12 Bergrahmen $4,511,170,68 4
35 Kiepen 36
13 Pedale $ 140,422,20 19
36 Pumps $12.695.18 34
2 Straßenfahrräder $ 40.551.696.34 1
14 Straßenrahmen $3,636,398,71 5
15 Sättel $ 52.526,47 26
22 Kurze Hose $385,707,80 10
23 Socken $28,337,85 31
24 Strumpfhose $189,179,37 16
37 Reifen und Rohre $224,832,81 13
3 Tourenräder $13,334,864,18 3
16 Tourenrahmen $1,545,344,02 6
25 Westen $240,990,04 11
17 Räder $648,240,04 8

Erstellen eines Rangwerts

Eine Möglichkeit zum Abrufen eines Rangwerts für einen bestimmten Wert in einer Zeile besteht darin, die Anzahl der Zeilen in derselben Tabelle zu zählen, die einen Wert haben, der größer (oder kleiner) als der wert ist, der verglichen wird. Diese Technik gibt einen leeren oder null Wert für den höchsten Wert in der Tabelle zurück, während gleiche Werte den gleichen Rangwert und den nächsten Wert (nach den gleichen Werten) einen nicht aufeinander folgenden Rangwert aufweisen. Sehen Sie sich das folgende Beispiel an.

Mithilfe der folgenden Formel wird eine neue berechnete Spalte SubCategorySalesRankingerstellt.

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

In den folgenden Schritten wird die Berechnungsmethode ausführlicher beschrieben.

  1. Die EARLIER-Funktion ruft den Wert TotalSubcategorySales für die aktuelle Zeile in der Tabelle ab. In diesem Fall, da der Prozess gestartet wird, ist er die erste Zeile in der Tabelle.

  2. EARLIER([TotalSubcategorySales]) ergibt 156.167,88 $, die aktuelle Zeile in der äußeren Schleife.

  3. Die funktion FILTER gibt nun eine Tabelle zurück, in der alle Zeilen einen Wert von TotalSubcategorySales größer als 156.167,88 $ haben (der aktuelle Wert für EARLIER).

  4. Die funktion COUNTROWS zählt die Zeilen der gefilterten Tabelle und weist diesen Wert der neuen berechneten Spalte in der aktuellen Zeile plus 1 zu. Das Hinzufügen von 1 ist erforderlich, um zu verhindern, dass der oberste Rangwert leer wird.

  5. Die Formel der berechneten Spalte wird zur nächsten Zeile verschoben und wiederholt die Schritte 1 bis 4. Diese Schritte werden so lange wiederholt, bis das Ende der Tabelle erreicht ist.

Die EARLIER-Funktion ruft immer den Wert der Spalte vor dem aktuellen Tabellenvorgang ab. Wenn Sie vorher einen Wert aus der Schleife abrufen müssen, legen Sie das zweite Argument auf 2 fest.

EARLIEST FunktionFilterfunktionen