Lire en anglais

Partager via


PLUS TÔT

s’applique à :colonne calculéetable calculéemesurecalcul visuel

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

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

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

Syntaxe

DAX
EARLIER(<column>, <number>)  

Paramètres

Terme Définition
column Colonne ou expression qui se résout en colonne.
num (Facultatif) Nombre positif à la passe d’évaluation externe.

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

Lorsque la valeur par défaut est omise est 1.

Valeur de retour

Valeur actuelle de la ligne, de column, à number de la passe d’évaluation externe.

Exceptions

Description des erreurs

Remarques

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

  • Les performances de EARLIER peuvent être lentes, car théoriquement, il peut être nécessaire d’effectuer un certain nombre d’opérations proches du nombre total de lignes (dans la colonne) fois le même nombre (selon la syntaxe de l’expression). Par exemple, si vous avez 10 lignes dans la colonne, environ 100 opérations peuvent être requises ; si vous avez 100 lignes, une opération proche de 10 000 opérations peut être effectuée.

  • Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées ou les 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 EARLIER, il est nécessaire de créer 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.

Le tableau final, y compris la colonne de classement, s’affiche ici.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales Sous-catégorieRanking
18 Bib-Shorts 156 167,88 $ 18
26 Racks à vélo 220 720,70 $ 14
27 Stand de vélo 35 628,69 $ 30
28 Bouteilles et cages 59 342,43 $ 24
5 Crochets inférieurs 48 643,47 $ 27
6 Freins 62 113,16 $ 23
19 Casquettes 47 934,54 $ 28
7 Enchaîne 8 847,08 $ 35
29 Nettoyants 16 882,62 $ 32
8 Cranksets 191 522,09 $ 15
9 Dérailleurs 64 965,33 $ 22
30 Ailes 41 974,10 $ 29
10 Fourchettes 74 727,66 $ 21
20 Gants 228 353,58 $ 12
4 Guidon 163 257,06 $ 17
11 Casques 57 659,99 $ 25
31 Casques 451 192,31 $ 9
32 Packs d’hydratation 96 893,78 $ 20
21 Maillots 699 429,78 $ 7
33 Lumières 36
34 Serrures 15 059,47 $ 33
1 Vtt 34 305 864,29 $ 2
12 Cadres de montagne 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 Trames routières 3 636 398,71 $ 5
15 Selles 52 526,47 $ 26
22 Short 385 707,80 $ 10
23 Chaussettes 28 337,85 $ 31
24 Collants 189 179,37 $ 16
37 Pneus et tubes 224 832,81 $ 13
3 Motos de tourisme 13 334 864,18 $ 3
16 Images de tournée 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 consiste à 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 zéro pour la valeur la plus élevée de la table, tandis que les valeurs égales auront la même valeur de classement et la valeur suivante (après les valeurs égales) auront 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.

DAX
= 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 active dans la table. Dans ce cas, étant donné que le processus démarre, il s’agit de la première ligne de la table

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

  3. La fonction FILTER retourne maintenant une table où toutes les lignes ont une valeur de TotalSubcategorySales supérieure à 156 167,88 $ (qui est la valeur actuelle de EARLIER).

  4. La fonction COUNTROWS compte les lignes de la table filtrée et affecte cette valeur à la nouvelle colonne calculée dans la ligne actuelle plus 1. L’ajout de 1 est nécessaire pour empêcher la valeur la plus classée de devenir vide.

  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 obtient toujours la valeur de la colonne avant l’opération de table actuelle. Si vous devez obtenir une valeur de la boucle avant cela, définissez le deuxième argument sur 2.

de la fonction EARLIEST
fonctions de filtre