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 column
bei 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.
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.EARLIER([TotalSubcategorySales])
ergibt 156.167,88 $, die aktuelle Zeile in der äußeren Schleife.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ürEARLIER
).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.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.