EARLIER

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

EARLIER eignet sich für geschachtelte Berechnungen, bei denen ein bestimmter Wert als Eingabe zum Erstellen von Berechnungen verwendet wird. In Microsoft Excel können solche Berechnungen nur im Kontext der aktuellen Zeile durchgeführt werden. In DAX können Sie jedoch den Wert der Eingabe speichern und Berechnungen unter Verwendung von Daten aus der gesamten Tabelle durchführen.

EARLIER wird häufig im Kontext von berechneten Spalten verwendet.

Syntax

EARLIER(<column>, <number>)  

Parameter

Begriff Definition
Säulendiagramm 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 Auswertungsebene nach oben wird durch 1 dargestellt, zwei Ebenen nach oben durch 2 usw.

Wird kein Wert angegeben, lautet der Standardwert 1.

Rückgabewert

Der aktuelle Wert der Zeile für die Spalte bei der Anzahl von äußeren Auswertungsdurchläufen.

Ausnahmen

Beschreibung von Fehlern.

Bemerkungen

  • EARLIER ist erfolgreich, wenn vor Beginn des Tabellenscans ein Zeilenkontext vorhanden ist. Andernfalls wird ein Fehler zurückgegeben.

  • Beim Ausführen von EARLIER kann es zu Leistungsproblemen kommen, da theoretisch eine Anzahl von Vorgängen ausgeführt werden muss, die nahezu der Gesamtzahl der Zeilen (in der Spalte) multipliziert mit sich selbst entspricht (je nach Syntax des Ausdrucks). Befinden sich in der Spalte beispielsweise 10 Zeilen, können bis zu 100 Vorgänge erforderlich sein. Bei 100 Zeilen müssen schon nahezu 10.000 Vorgänge ausgeführt werden.

  • Die Verwendung dieser Funktion im DirectQuery-Modus wird nicht unterstützt, wenn sie in berechneten Spalten oder RLS-Regeln (Row-Level Security) eingesetzt wird.

Hinweis

In der Praxis führt die In-Memory-Analyse-Engine VertiPaq Optimierungen durch, um die tatsächliche Anzahl von Berechnungen zu reduzieren. Sie sollten jedoch beim Erstellen von Formeln vorsichtig sein, die Rekursion beinhalten.

Beispiel

Um die Verwendung von EARLIER veranschaulichen zu können, ist ein Szenario erforderlich, für das ein Rangwert berechnet und anschließend in weiteren Berechnungen verwendet wird.

Das folgende Beispiel basiert auf der einfachen Tabelle ProductSubcategory, die den Gesamtumsatz für jede Produktunterkategorie auflistet.

Die fertige Tabelle, einschließlich der Spalte mit der Rangfolge, sieht folgendermaßen aus:

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales SubcategoryRanking
18 Trägershorts 156.167,88 $ 18
26 Fahrradträger 220.720,70 $ 14
27 Fahrradständer 35.628,69 $ 30
28 Trinkflaschen und Körbe 59.342,43 $ 24
5 Tretlager 48.643,47 $ 27
6 Bremsen 62.113,16 $ 23
19 Obergrenzen 47.934,54 $ 28
7 Ketten 8.847,08 $ 35
29 Reinigungsmittel 16.882,62 $ 32
8 Kurbelsätze 191.522,09 $ 15
9 Schaltwerke 64.965,33 $ 22
30 Schutzbleche 41.974,10 $ 29
10 Radgabeln 74.727,66 $ 21
20 Handschuhe 228.353,58 $ 12
4 Lenkstangen 163.257,06 $ 17
11 Lenkköpfe 57.659,99 $ 25
31 Fahrradhelme 451.192,31 $ 9
32 Trinkrucksäcke 96.893,78 $ 20
21 Trikots 699.429,78 $ 7
33 Leuchten 36
34 Sperren 15.059,47 $ 33
1 Mountainbikes 34.305.864,29 $ 2
12 Rahmen für Mountainbikes 4.511.170,68 $ 4
35 Radtaschen 36
13 Pedale 140.422,20 $ 19
36 Luftpumpen 12.695,18 $ 34
2 Rennräder 40.551.696,34 $ 1
14 Rahmen für Rennräder 3.636.398,71 $ 5
15 Sättel 52.526,47 $ 26
22 Kurze Radhosen 385.707,80 $ 10
23 Socken 28.337,85 $ 31
24 Lange Radhosen 189.179,37 $ 16
37 Reifen und Schläuche 224.832,81 $ 13
3 Tourenräder 13.334.864,18 $ 3
16 Rahmen für Tourenräder 1.545.344,02 $ 6
25 Jacken 240.990,04 $ 11
17 Räder 648.240,04 $ 8

Erstellen eines Rangwerts

Eine Möglichkeit zum Erstellen des Rangwerts für einen bestimmten Wert in einer Zeile besteht darin, die Anzahl der Zeilen in derselben Tabelle zu bestimmen, deren Wert größer (oder kleiner) ist. Dabei erhält der höchste Wert in der Tabelle den Wert 0 (null) oder einen leeren Wert. Identische Werte erhalten denselben Rangwert und der jeweils nachfolgende Wert (im Anschluss an die identischen Werte) keinen fortlaufenden Rangwert. Dies wird im Beispiel unten verdeutlicht.

Mit der folgenden Formel wird eine neue berechnete Spalte namens SubCategorySalesRanking erstellt:

= 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 für TotalSubcategorySales für die aktuelle Zeile in der Tabelle ab. Da in diesem Fall der Prozess gestartet wird, handelt es sich um die erste Zeile in der Tabelle.

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

  3. Die FILTER-Funktion gibt nun eine Tabelle zurück, in der alle Zeilen für TotalSubcategorySales einen Wert aufweisen, der größer ist als 156.167,88 $ (dem aktuellen Wert für EARLIER).

  4. Mit der COUNTROWS-Funktion werden die Zeilen der gefilterten Tabelle gezählt, und dieser Wert plus 1 wird der neuen berechneten Spalte in der aktuellen Zeile zugewiesen. Durch die Erhöhung um 1 wird verhindert, dass der oberste Wert einen leeren Wert erhält.

  5. Die berechnete Spaltenformel wechselt zur nächsten Zeile und wiederholt die Schritte 1 bis 4. Dieser Vorgang wird wiederholt, bis das Ende der Tabelle erreicht ist.

Die EARLIER-Funktion ruft immer den Wert der Spalte vor dem aktuellen Tabellenvorgang ab. Wenn Sie einen Wert aus der Schleife davor benötigen, legen Sie das zweite Argument auf 2 fest.

EARLIEST-Funktion
Filterfunktionen