EARLIER

S’applique à :Colonne calculéeTable calculéeMesureCalcul de visuel

Retourne la valeur actuelle de la colonne spécifiée dans un test d’évaluation externe de la colonne mentionnée.

EARLIER est utile pour les calculs imbriqués où vous souhaitez utiliser une certaine valeur comme entrée et produire des calculs basés sur cette entrée. Dans Microsoft Excel, vous ne pouvez effectuer de tels calculs que dans le contexte de la ligne actuelle. Toutefois, dans DAX, vous pouvez stocker la valeur de l’entrée, puis effectuer le calcul à l’aide des données de la table entière.

EARLIER est principalement utilisée dans le contexte des colonnes calculées.

Syntaxe

EARLIER(<column>, <number>)  

Paramètres

Terme Définition
colonne Colonne ou expression qui correspond à une colonne.
num (Facultatif) Nombre positif pour le test d’évaluation externe.

Le niveau d’évaluation externe suivant est représenté par 1 ; deux niveaux externes sont représentés par 2, et ainsi de suite.

En cas d’omission, la valeur par défaut est 1.

Valeur renvoyée

Valeur actuelle de la ligne, à partir de column, au niveau number des tests d’évaluations externes.

Exceptions

Description des erreurs

Remarques

  • EARLIER réussit s’il existe un contexte de ligne avant le début de l’analyse de table. Sinon, elle retourne une erreur.

  • Les performances de la fonction EARLIER peuvent être lentes, car elle peut avoir théoriquement à effectuer un nombre d’opérations proche du nombre total de lignes (dans la colonne) multiplié par le même nombre (en fonction de la syntaxe de l’expression). Par exemple, si vous avez 10 lignes dans la colonne, environ 100 opérations peuvent être nécessaires. Si vous avez 100 lignes, près de 10 000 opérations peuvent être effectuées.

  • Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau des lignes (RLS).

Notes

Dans la pratique, le moteur d’analytique en mémoire VertiPaq effectue des optimisations pour réduire le nombre réel de calculs, mais vous devez être prudent lors de la création de formules qui impliquent la récursivité.

Exemple

Pour illustrer l’utilisation de la fonction EARLIER, il est nécessaire de générer un scénario qui calcule une valeur de classement, puis utilise cette valeur de classement dans d’autres calculs.

L’exemple suivant est basé sur cette table simple, ProductSubcategory, qui affiche le total des ventes pour chaque ProductSubcategory.

La table finale, dont la colonne de classement, est présentée ici.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales SubcategoryRanking
18 Cuissards 156 167,88 $ 18
26 Porte-vélos 220 720,70 $ 14
27 Supports à vélos 35 628,69 $ 30
28 Bidons et porte-bidons 59 342,43 $ 24
5 Jeux de pédalier 48 643,47 $ 27
6 Freins 62 113,16 $ 23
19 Capuchons 47 934,54 $ 28
7 Chaînes 8 847,08 $ 35
29 Produits d’entretien 16 882,62 $ 32
8 Pédaliers 191 522,09 $ 15
9 Dérailleurs 64 965,33 $ 22
30 Garde-boue 41 974,10 $ 29
10 Fourches 74 727,66 $ 21
20 Gants 228 353,58 $ 12
4 Guidons 163 257,06 $ 17
11 Oreillettes 57 659,99 $ 25
31 Casques 451 192,31 $ 9
32 Sacs à eau 96 893,78 $ 20
21 Maillots 699 429,78 $ 7
33 Lumières 36
34 Verrous 15 059,47 $ 33
1 VTT 34 305 864,29 $ 2
12 Cadres VTT 4 511 170,68 $ 4
35 Sacoches 36
13 Pédales 140 422,20 $ 19
36 Pompes 12 695,18 $ 34
2 Vélos de route 40 551 696,34 $ 1
14 Cadres de cyclisme 3 636 398,71 $ 5
15 Selles 52 526,47 $ 26
22 Shorts 385 707,80 $ 10
23 Chaussettes 28 337,85 $ 31
24 Collants 189 179,37 $ 16
37 Pneus et chambres à air 224 832,81 $ 13
3 Vélos de tourisme 13 334 864,18 $ 3
16 Cadres de tourisme 1 545 344,02 $ 6
25 Gilets 240 990,04 $ 11
17 Roues 648 240,04 $ 8

Création d’une valeur de classement

Une façon d’obtenir une valeur de classement pour une valeur donnée dans une ligne est de compter le nombre de lignes, dans la même table, qui ont une valeur supérieure (ou inférieure) à celle qui est comparée. Cette technique retourne une valeur vide ou nulle pour la valeur la plus élevée dans la table, alors que les valeurs égales auront la même valeur de classement et la valeur suivante (après les valeurs égales) aura une valeur de classement non consécutive. Consultez l’exemple ci-dessous.

Une nouvelle colonne calculée, SubCategorySalesRanking, est créée à l’aide de la formule suivante.

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

Les étapes suivantes décrivent plus en détail la méthode de calcul.

  1. La fonction EARLIER obtient la valeur de TotalSubcategorySales pour la ligne actuelle dans la table. Dans ce cas, comme le processus démarre, il s’agit de la première ligne de la table

  2. EARLIER([TotalSubcategorySales]) prend la valeur 156 167,88 $, la ligne actuelle dans la boucle externe.

  3. La fonction FILTER retourne désormais une table dans laquelle toutes les lignes ont une valeur pour TotalSubcategorySales supérieure à 156 167,88 $ (qui est la valeur actuelle pour EARLIER).

  4. La fonction COUNTROWS compte les lignes de la table filtrée et assigne cette valeur à la nouvelle colonne calculée dans la ligne actuelle plus 1. L’ajout de 1 est nécessaire pour éviter que la valeur la mieux classée ne devienne un espace.

  5. La formule de colonne calculée passe à la ligne suivante et répète les étapes 1 à 4. Ces étapes sont répétées jusqu’à ce que la fin de la table soit atteinte.

La fonction EARLIER obtiendra toujours la valeur de la colonne avant l’opération de table actuelle. Si vous avez besoin d’obtenir une valeur de la boucle avant cela, définissez le deuxième argument sur 2.

EARLIEST, fonction
Fonctions de filtrage