Partager via


WINDOW

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

Retourne plusieurs lignes qui sont positionnées dans l’intervalle donné.

Syntaxe

WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Paramètres

Terme Définition
from Indique l’emplacement de démarrage du window. Il peut s’agir de n’importe quelle expression DAX qui retourne une valuescalaire.
Le comportement dépend du paramètre from_type :
- Iffrom_type est REL, le nombre de lignes à revenir en arrière (valuenégatives) or avant (positif value) de la ligne actuelle pour obtenir la ligne first dans le window.
- Iffrom_type est ABS, andfrom est positif, puis il s’agit de la position du début du window à partir du début de la partition. L’indexation commence à 1. Par exemple, 1 signifie que window commence à partir du début de la partition. If from est négative, il s’agit de la position du début de la window à partir de la fin de la partition. -1 signifie la ligne last dans la partition.
from_type Modifie le comportement du paramètre from. Les values possibles sont ABS (absolu) and REL (relatif). La valeur par défaut est REL.
to Identique à from, mais indique la fin du window. La ligne last est incluse dans la window.
to_type Identique à from_type, mais modifie le comportement de to.
relation (Facultatif) Expression de table à partir de laquelle les lignes de sortie sont retournées.
If spécifié, all colonnes dans partitionBy doivent provenir de celui-ci or une table related.
If omis :
- orderBy doit être spécifié explicitement.
: les expressions AllorderByandpartitionBy doivent être des noms de colonnes complets and proviennent d’une table unique.
: valeur par défaut ALLSELECTED() des colonnes all dans orderByandpartitionBy.
axis (Facultatif) Axe de la forme du visuel. Disponible uniquement dans les calculs visuels, and remplace relation.
orderBy (Facultatif) Clause ORDERBY() contenant les expressions qui define comment chaque partition est triée.
If omis :
- relation doit être spécifié explicitement.
: tri par défaut par chaque colonne dans relation qui est not déjà spécifiée dans partitionBy.
blanks (Facultatif) Énumération qui définit comment gérer blankvalues lors du tri.
Ce paramètre est réservé à un usage futur.
Actuellement, la seule value prise en charge est DEFAULT, où le comportement de values numérique est blankvalues sont classés entre zéro andvaluesnégatif . Le comportement des chaînes est blankvalues sont classés avant all chaînes, y compris les chaînes vides.
partitionBy (Facultatif) Clause PARTITIONBY() contenant les colonnes qui define comment relation est partitionnée. If omis, relation est traitée comme une partition unique.
matchBy (Facultatif) Clause MATCHBY() contenant les colonnes qui define comment faire correspondre les données and identifier la ligne actuelle.
reset (Facultatif) Disponible seulement dans les calculs de visuel. Indique if les réinitialisations de calcul, and à quel niveau de la hiérarchie de colonnes de la forme visuelle. Les values acceptés sont les suivants : NONE, LOWESTPARENT, HIGHESTPARENT, or un entier. Le comportement dépend de l’entier sign:
- If zéro or omis, le calcul ne réinitialise not. Équivalent à NONE.
- If positif, l’entier identifie la colonne à partir du grain le plus élevé, indépendamment du grain. HIGHESTPARENT équivaut à 1.
- If négatif, l’entier identifie la colonne à partir du plus bas, par rapport au grain actuel. LOWESTPARENT équivaut à -1.

Retourner value

All lignes du window.

Notes

Except pour les colonnes ajoutées par DAX fonctions de table, chaque colonne de relation, lorsque matchBy est not présente, or chaque colonne dans matchByandpartitionBy, lorsque matchBy est présente, doit avoir un value externe correspondant pour aider à define la ligne actuelle sur laquelle fonctionner. If from_type and to_type les deux ont valueABS, les éléments suivants s’appliquent uniquement aux colonnes partitionBy :

  • If il existe exactement une colonne externe correspondante, son value est utilisé.
  • If il n’existe aucune colonne externe correspondante :
    • WINDOW détermine first déterminer all colonnes qui n’ont aucune colonne externe correspondante.
    • Pour chaque combinaison de values existantes pour ces colonnes dans le contexte parent de WINDOW, WINDOW est évaluée, and les lignes correspondantes sont retournées.
    • WINDOW sortie finale est une union de ces lignes.
  • If il existe plusieurs colonnes externes correspondantes, une error est retournée.

If all des colonnes de relationont été ajoutées par DAX fonctions de table, une error est retournée.

If matchBy est présente, WINDOW essaie d’utiliser des colonnes matchByandpartitionBy pour identifier la ligne.
If matchBy est not présente and les colonnes spécifiées dans orderByandpartitionBy ne peuvent pas identifier de manière unique chaque ligne dans relation, puis :

  • WINDOW tenterez de find le moins de colonnes supplémentaires requises pour identifier de manière unique chaque ligne.
  • If de telles colonnes sont disponibles, WINDOW ajoute automatiquement ces nouvelles colonnes à orderBy, and chaque partition est triée à l’aide de ce nouvel ensemble de colonnes orderBy.
  • If de telles colonnes sont introuvables, une error est retournée.

Une table vide est retournée if:

  • Le value externe correspondant d’une colonne orderByorpartitionBy n’existe not dans relation.
  • La window entière est en dehors de la partition, or le début de la window est après sa fin.

If WINDOW est utilisé dans une colonne calculée définie sur la même table que relation, andorderBy est omis, un error est retourné.

If le début de la window s’avère avant la ligne first, puis elle est définie sur la ligne first. De même, if la fin de l'window se trouve après la ligne last de la partition, elle est définie sur la ligne last.

reset peuvent être utilisés uniquement dans les calculs visuels, and ne peuvent pas être utilisés en combinaison avec orderByorpartitionBy. If reset est présente, axis peut être spécifiée, mais relation ne peut pas.

Exemple 1 - measure

Les measuresuivantes :

3-day Average Price = 
AVERAGEX(
    WINDOW(
        -2,REL,0,REL,
        SUMMARIZE(ALLSELECTED('Sales'), 'Date'[Date], 'Product'[Product]),
        ORDERBY('Date'[Date]),
        KEEP,
        PARTITIONBY('Product'[Product])
    ), 
    CALCULATE(AVERAGE(Sales[Unit Price]))
)

Retourne les 3-dayaverage des prix unitaires pour chaque product. Notez que les 3-daywindow se composent de trois jours dans lesquels le product a des ventes, not nécessairement trois jours consécutifs calendar jours.

Exemple 2 - measure

Les measuresuivantes :

RunningSum =
SUMX (
    WINDOW (
        1, ABS, 0, REL,
        ALLSELECTED (
            'Date'[Fiscal Year],
            'Date'[Month Number Of Year]
        ),
        PARTITIONBY ( 'Date'[Fiscal Year] )
    ),
    [Total Sales]
)

Retourne le sum en cours d’exécution pour Total Sales by Month Number Of Year, en redémarrant pour chaque Yearfiscal :

Year Month nombre de Year Sales Amount RunningSum
EF2018 1 1 327 675 $ 1 327 675 $
EF2018 2 3 936 463 $ 5 264 138 $
EF2018 3 700 873 $ 5 965 011 $
EF2018 4 1 519 275 $ 7 484 286 $
EF2018 5 2 960 378 $ 10 444 664 $
EF2018 6 1 487 671 $ 11 932 336 $
EF2018 7 1 423 357 $ 13 355 693 $
EF2018 8 2 057 902 $ 15 413 595 $
EF2018 9 2 523 948 $ 17 937 543 $
EF2018 10 561 681 $ 18 499 224 $
EF2018 11 4 764 920 $ 23 264 145 $
EF2018 12 596 747 $ 23 860 891 $
EF2019 1 1 847 692 $ 1 847 692 $
EF2019 2 2 829 362 $ 4 677 054 $
EF2019 3 2 092 434 $ 6 769 488 $
EF2019 4 2 405 971 $ 9 175 459 $
EF2019 5 3 459 444 $ 12 634 903 $
EF2019 6 2 850 649 $ 15 485 552 $
EF2019 7 2 939 691 $ 18 425 243 $
EF2019 8 3 964 801 $ 22 390 045 $
EF2019 9 3 287 606 $ 25 677 650 $
EF2019 10 2 157 287 $ 27 834 938 $
EF2019 11 3 611 092 $ 31 446 030 $
EF2019 12 2 624 078 $ 34 070 109 $
EF2020 1 3 235 187 $ 3 235 187 $
EF2020 2 4 070 046 $ 7 305 233 $
EF2020 3 4 429 833 $ 11 735 066 $
EF2020 4 4 002 614 $ 15 737 680 $
EF2020 5 5 265 797 $ 21 003 477 $
EF2020 6 3 465 241 $ 24 468 717 $
EF2020 7 3 513 064 $ 27 981 781 $
EF2020 8 5 247 165 $ 33 228 947 $
EF2020 9 5 104 088 $ 38 333 035 $
EF2020 10 3 542 150 $ 41 875 184 $
EF2020 11 5 151 897 $ 47 027 081 $
EF2020 12 4 851 194 $ 51 878 275 $

Exemple 3 : calcul de visuel

Le calcul visuel suivant DAX requête :

TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount])

Retourne le total cumulé des ventes par month, calculé le long de chaque year. Les values 1 and -2 peuvent être utilisées au lieu de HIGHESTPARENT, avec les mêmes résultats.

La capture d’écran ci-dessous montre la matrice visuelle and l’expression de calcul visuel :

DAX de calcul visuel

Exemple 4 : calcul de visuel

Le calcul visuel suivant DAX requête :

TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])

Retourne le total cumulé des ventes par month, calculé le long de chaque quarter.

INDEX
MOVINGAVERAGE
OFFSET
ORDERBY
PARTITIONBY
RANGE
RANK
ROWNUMBER RUNNINGSUM