EARLIEREARLIER

Gibt den aktuellen Wert der angegebenen Spalte in einem äußeren Auswertungsdurchlauf der angegebenen Spalte zurück.Returns the current value of the specified column in an outer evaluation pass of the mentioned column.

EARLIER eignet sich für geschachtelte Berechnungen, bei denen ein bestimmter Wert als Eingabe zum Erstellen von Berechnungen verwendet wird.EARLIER is useful for nested calculations where you want to use a certain value as an input and produce calculations based on that input. 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.In Microsoft Excel, you can do such calculations only within the context of the current row; however, in DAX you can store the value of the input and then make calculation using data from the entire table.

EARLIER wird häufig im Kontext von berechneten Spalten verwendet.EARLIER is mostly used in the context of calculated columns.

SyntaxSyntax

EARLIER(<column>, <number>)  

ParameterParameters

BegriffTerm DefinitionDefinition
columncolumn Eine Spalte oder ein Ausdruck, der in eine Spalte aufgelöst wird.A column or expression that resolves to a column.
numnum (Optional) Eine positive Zahl für den äußeren Auswertungsdurchlauf.(Optional) A positive number to the outer evaluation pass.

Die nächste Auswertungsebene nach oben wird durch 1 dargestellt, zwei Ebenen nach oben durch 2 usw.The next evaluation level out is represented by 1; two levels out is represented by 2 and so on.

Wird kein Wert angegeben, lautet der Standardwert 1.When omitted default value is 1.

RückgabewertReturn value

Der aktuelle Wert der Zeile für die Spalte bei der Anzahl von äußeren Auswertungsdurchläufen.The current value of row, from column, at number of outer evaluation passes.

AusnahmenExceptions

Beschreibung von Fehlern.Description of errors

BemerkungenRemarks

  • EARLIER ist erfolgreich, wenn vor Beginn des Tabellenscans ein Zeilenkontext vorhanden ist.EARLIER succeeds if there is a row context prior to the beginning of the table scan. Andernfalls wird ein Fehler zurückgegeben.Otherwise it returns an error.

  • 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).The performance of EARLIER might be slow because it theoretically, it might have to perform a number of operations that is close to the total number of rows (in the column) times the same number (depending on the syntax of the expression). 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.For example if you have 10 rows in the column, approximately a 100 operations could be required; if you have 100 rows then close to 10,000 operations might be performed.

  • Die Verwendung dieser Funktion im DirectQuery-Modus wird nicht unterstützt, wenn sie in berechneten Spalten oder RLS-Regeln (Row-Level Security) eingesetzt wird.This function is not supported for use in DirectQuery mode when used in calculated columns or row-level security (RLS) rules.

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.In practice, the VertiPaq in-memory analytics engine performs optimizations to reduce the actual number of calculations, but you should be cautious when creating formulas that involve recursion.

BeispielExample

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.To illustrate the use of EARLIER, it is necessary to build a scenario that calculates a rank value and then uses that rank value in other calculations.

Das folgende Beispiel basiert auf der einfachen Tabelle ProductSubcategory, die den Gesamtumsatz für jede Produktunterkategorie auflistet.The following example is based on this simple table, ProductSubcategory, which shows the total sales for each ProductSubcategory.

Die fertige Tabelle, einschließlich der Spalte mit der Rangfolge, sieht folgendermaßen aus:The final table, including the ranking column is shown here.

ProductSubcategoryKeyProductSubcategoryKey EnglishProductSubcategoryNameEnglishProductSubcategoryName TotalSubcategorySalesTotalSubcategorySales SubcategoryRankingSubcategoryRanking
1818 TrägershortsBib-Shorts 156.167,88 $$156,167.88 1818
2626 FahrradträgerBike Racks 220.720,70 $$220,720.70 1414
2727 FahrradständerBike Stands 35.628,69 $$35,628.69 3030
2828 Trinkflaschen und KörbeBottles and Cages 59.342,43 $$59,342.43 2424
55 TretlagerBottom Brackets 48.643,47 $$48,643.47 2727
66 BremsenBrakes 62.113,16 $$62,113.16 2323
1919 ObergrenzenCaps 47.934,54 $$47,934.54 2828
77 KettenChains 8.847,08 $$8,847.08 3535
2929 ReinigungsmittelCleaners 16.882,62 $$16,882.62 3232
88 KurbelsätzeCranksets 191.522,09 $$191,522.09 1515
99 SchaltwerkeDerailleurs 64.965,33 $$64,965.33 2222
3030 SchutzblecheFenders 41.974,10 $$41,974.10 2929
1010 RadgabelnForks 74.727,66 $$74,727.66 2121
2020 HandschuheGloves 228.353,58 $$228,353.58 1212
44 LenkstangenHandlebars 163.257,06 $$163,257.06 1717
1111 LenkköpfeHeadsets 57.659,99 $$57,659.99 2525
3131 FahrradhelmeHelmets 451.192,31 $$451,192.31 99
3232 TrinkrucksäckeHydration Packs 96.893,78 $$96,893.78 2020
2121 TrikotsJerseys 699.429,78 $$699,429.78 77
3333 LeuchtenLights 3636
3434 LocksLocks 15.059,47 $$15,059.47 3333
11 MountainbikesMountain Bikes 34.305.864,29 $$34,305,864.29 22
1212 Rahmen für MountainbikesMountain Frames 4.511.170,68 $$4,511,170.68 44
3535 RadtaschenPanniers 3636
1313 PedalePedals 140.422,20 $$140,422.20 1919
3636 LuftpumpenPumps 12.695,18 $$12,695.18 3434
22 RennräderRoad Bikes 40.551.696,34 $$40,551,696.34 11
1414 Rahmen für RennräderRoad Frames 3.636.398,71 $$3,636,398.71 55
1515 SättelSaddles 52.526,47 $$52,526.47 2626
2222 Kurze RadhosenShorts 385.707,80 $$385,707.80 1010
2323 SockenSocks 28.337,85 $$28,337.85 3131
2424 Lange RadhosenTights 189.179,37 $$189,179.37 1616
3737 Reifen und SchläucheTires and Tubes 224.832,81 $$224,832.81 1313
33 TourenräderTouring Bikes 13.334.864,18 $$13,334,864.18 33
1616 Rahmen für TourenräderTouring Frames 1.545.344,02 $$1,545,344.02 66
2525 JackenVests 240.990,04 $$240,990.04 1111
1717 RäderWheels 648.240,04 $$648,240.04 88

Erstellen eines RangwertsCreating a Rank Value

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.One way to obtain a rank value for a given value in a row is to count the number of rows, in the same table, that have a value larger (or smaller) than the one that is being compared. 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.This technique returns a blank or zero value for the highest value in the table, whereas equal values will have the same rank value and next value (after the equal values) will have a non consecutive rank value. Dies wird im Beispiel unten verdeutlicht.See the sample below.

Mit der folgenden Formel wird eine neue berechnete Spalte namens SubCategorySalesRanking erstellt:A new calculated column, SubCategorySalesRanking, is created by using the following formula.

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

In den folgenden Schritten wird die Berechnungsmethode ausführlicher beschrieben:The following steps describe the method of calculation in more detail.

  1. Die EARLIER-Funktion ruft den Wert für TotalSubcategorySales für die aktuelle Zeile in der Tabelle ab.The EARLIER function gets the value of TotalSubcategorySales for the current row in the table. Da in diesem Fall der Prozess gestartet wird, handelt es sich um die erste Zeile in der Tabelle.In this case, because the process is starting, it is the first row in the table

  2. EARLIER([TotalSubcategorySales]) ergibt 156.167,88 $, die aktuelle Zeile in der äußeren Schleife.EARLIER([TotalSubcategorySales]) evaluates to $156,167.88, the current row in the outer loop.

  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).The FILTER function now returns a table where all rows have a value of TotalSubcategorySales larger than $156,167.88 (which is the current value for 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.The COUNTROWS function counts the rows of the filtered table and assigns that value to the new calculated column in the current row plus 1. Durch die Erhöhung um 1 wird verhindert, dass der oberste Wert einen leeren Wert erhält.Adding 1 is needed to prevent the top ranked value from become a Blank.

  5. Die berechnete Spaltenformel wechselt zur nächsten Zeile und wiederholt die Schritte 1 bis 4.The calculated column formula moves to the next row and repeats steps 1 to 4. Dieser Vorgang wird wiederholt, bis das Ende der Tabelle erreicht ist.These steps are repeated until the end of the table is reached.

Die EARLIER-Funktion ruft immer den Wert der Spalte vor dem aktuellen Tabellenvorgang ab.The EARLIER function will always get the value of the column prior to the current table operation. Wenn Sie einen Wert aus der Schleife davor benötigen, legen Sie das zweite Argument auf 2 fest.If you need to get a value from the loop before that, set the second argument to 2.

Weitere InformationenSee also

EARLIEST-FunktionEARLIEST function
FilterfunktionenFilter functions