Lire en anglais

Partager via


CALCULATETABLE

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

Évalue une expression de table dans un contexte de filter modifié.

Notes

Il existe également la fonction CALCULATE. Il effectue exactement la même fonctionnalité, except il modifie le contexte filter appliqué à une expression qui retourne un scalaire value.

Syntaxe

DAX
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])

Paramètres

Terme Définition
expression Expression de table à évaluer.
filter1, filter2,… (Facultatif) Les expressions booléennes or expressions de table qui définissent filters, orfilter fonctions de modificateur.

L’expression utilisée comme paramètre first doit être une table de modèles or une fonction qui retourne une table.

Filters peut être :

  • Expressions de filter booléennes
  • Expressions de table filter
  • fonctions de modification Filter

Lorsqu’il existe plusieurs filters, ils sont évalués à l’aide de l’opérateur logique AND. Cela signifie que all conditions doivent être TRUE au même time.

Expressions de filter booléennes

Une expression booléenne filter est une expression qui prend la valeur TRUEorFALSE. Il existe plusieurs règles qu’elles doivent respecter :

  • Ils ne peuvent référencer qu’une seule colonne.
  • Ils ne peuvent pas référencer des mesures.
  • Ils ne peuvent pas utiliser une fonction CALCULATE imbriquée.

À compter de la version de septembre 2021 de Power BI Desktop, les éléments suivants s’appliquent également :

  • Ils ne peuvent pas utiliser des fonctions qui analysent or retournent une table, sauf si elles sont passées en tant qu’arguments aux fonctions d’agrégation.
  • Ils peuvent contenir une fonction d’agrégation qui retourne un valuescalaire.

Expression de table filter

Une expression de table filter applique un objet table en tant que filter. Il peut s’agir d’une référence à une table de modèles, mais il est plus probable qu’il s’agit d’une fonction qui retourne un objet table. Vous pouvez utiliser la fonction FILTER pour appliquer des conditions de filter complexes, y compris celles qui ne peuvent pas être définies par une expression de filter booléenne.

fonctions de modificateur Filter

Filter fonctions de modificateur vous permettent d’effectuer plus que simplement d’ajouter filters. Ils vous fournissent un contrôle supplémentaire lors de la modification de filter contexte.

Fonction But
REMOVEFILTERS Supprimez allfilters, orfilters d’une or plus de colonnes d’une table, or de all colonnes d’une seule table.
ALL 1, ALLEXCEPT, ALLNOBLANKROW Supprimez filters d’une or plus de colonnes, or de all colonnes d’une table unique.
KEEPFILTERS Ajoutez filter sans supprimer les filters existantes sur les mêmes colonnes.
USERELATIONSHIP Engagez une relation inactive entre related colonnes, auquel cas la relation active deviendra automatiquement inactive.
CROSSFILTER Modifiez filter direction (des deux à un, or d’un seul vers les deux) or désactiver une relation.

1 La fonction ALLand ses variantes se comportent comme des modificateurs filterand en tant que fonctions qui retournent des objets de table. If la fonction REMOVEFILTERS est prise en charge par votre outil, il est préférable de l’utiliser pour supprimer filters.

Retourner value

Tableau de values.

Remarques

  • Lorsque filter expressions sont fournies, la fonction CALCULATETABLE modifie le contexte filter pour evaluate l’expression. Pour chaque expression filter, il existe deux résultats standard possibles lorsque l’expression filter est not encapsulée dans la fonction KEEPFILTERS :

    • If les colonnes (or tables) ne figurent pas dans le contexte filter, de nouvelles filters seront ajoutées au contexte filter pour evaluate l’expression.
    • If les colonnes (tablesor) sont déjà dans le contexte filter, le filters existant sera remplacé par le nouveau filters pour evaluate l’expression CALCULATETABLE.
  • Cette fonction est not prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées or règles de sécurité au niveau des lignes (RLS).

Exemple

L’exemple suivant utilise la fonction CALCULATETABLE pour obtenir la sum des ventes Internet pour 2006. Cette value est utilisée ultérieurement pour calculate le ratio des ventes Internet par rapport aux ventes all pour le year 2006.

La formule suivante :

DAX
= SUMX(
    CALCULATETABLE(
        'InternetSales_USD',
        'DateTime'[CalendarYear] = 2006
    ),
    [SalesAmount_USD]
)  

Le tableau suivant s’affiche :

Étiquettes de ligne Internet SalesAmount_USD CalculateTable 2006 Internet Sales Ratio Ventes Internet à 2006
2005 2 627 031,40 $ 5 681 440,58 $ 0.46
2006 5 681 440,58 $ 5 681 440,58 $ 1.00
2007 8 705 066,67 $ 5 681 440,58 $ 1.53
2008 9 041 288,80 $ 5 681 440,58 $ 1.59
Total général 26 054 827,45 $ 5 681 440,58 $ 4.59