Partager via


Créer des groupes de calcul

Les groupes de calcul peuvent réduire considérablement le nombre de mesures redondantes que vous devez créer, en vous permettant de définir des formules DAX (Data Analysis Expressions) en tant qu’éléments de calcul. Les éléments de calcul peuvent être appliqués aux mesures existantes dans votre modèle. Pour plus d’informations sur les groupes de calcul, consultez l’article Groupes de calcul.

Ajouter un nouveau groupe de calcul en mode modèle

Dans Power BI, lors de la modification d’un modèle sémantique, accédez à l’affichage Modèle et sélectionnez le bouton Groupe de calcul dans le ruban. Si vous n’êtes pas déjà dans l’Explorateur de modèles, le volet Données s’ouvre sur la vue Modèle.

Capture d’écran du bouton de groupes de calcul dans le ruban.

Si la propriété Décourager les mesures implicites est désactivée, une fenêtre de boîte de dialogue vous invite à l’activer pour permettre la création du groupe de calcul.

Capture d’écran de la boîte de dialogue vous invitant à activer les mesures implicites.

Une mesure implicite se produit quand, dans la vue Rapport, vous utilisez une colonne de données du volet Données directement dans le visuel. Le visuel vous permet de l’agréger sous la forme d’une SUMagrégation de base, AVERAGEMINMAXou d’une autre agrégation de base, qui devient une mesure implicite. Lorsqu’un groupe de calcul est ajouté à un modèle, Power BI décourage la création de mesures implicites en n’affichant plus le symbole de somme en regard des colonnes de données du volet Données, et bloque l’ajout des colonnes de données aux visuels directement en tant que valeurs. Les mesures implicites existantes déjà créées dans les visuels continuent de fonctionner. La propriété Décourager les mesures implicites doit être activée, car les éléments de calcul ne s’appliquent pas aux mesures implicites. Les éléments de calcul s’appliquent uniquement aux mesures ou aux mesures explicites.

Capture d’écran de la vue Rapport et de la création de mesures implicites.

Une mesure ou une mesure explicite se produit quand vous créez une mesure, et que vous définissez l’expression DAX pour agréger une colonne de données. Les mesures explicites peuvent également avoir une logique conditionnelle et des filtres, ce qui permet de tirer pleinement parti des possibilités offertes par DAX. Tutoriel : Vous pouvez apprendre à créer vos propres mesures dans Power BI Desktop.

Remarque

Les expressions d’élément de calcul peuvent être écrites pour ignorer une mesure par nom ou par type de données, pour les scénarios où vous avez des mesures que vous ne souhaitez pas que l’élément de calcul change.

Une fois que vous sélectionnez Oui pour activer la propriété décourager les mesures implicites, un groupe de calcul est ajouté et vous pouvez commencer à définir l'expression DAX du premier élément de calcul dans la barre de formules DAX. La boîte de dialogue ne s’affiche pas si vous avez déjà déconseillé les mesures implicites activées .

SELECTEDMEASURE est une fonction DAX qui agit comme un espace réservé pour la mesure dans l'expression de l'élément de calcul. Vous pouvez en savoir plus sur la fonction DAX SELECTEDMEASURE en consultant l’article correspondant.

Capture d’écran de la barre de formule et du groupe de calcul DAX.

Ajouter un groupe de calcul à l’aide de la vue TMDL Power BI

Vous pouvez créer un groupe de calcul dans le langage de définition de modèle tabulaire ou la vue TMDL de Power BI Desktop. Modifiez le modèle sémantique et utilisez ce script TMDL.

createOrReplace

	table 'Calculation group'

		calculationGroup
			precedence: 1

			calculationItem 'Calculation item' = SELECTEDMEASURE()

		column 'Calculation group column'
			dataType: string
			summarizeBy: none
			sourceColumn: Name
			sortByColumn: Ordinal

			annotation SummarizationSetBy = Automatic

		column Ordinal
			dataType: int64
			formatString: 0
			summarizeBy: sum
			sourceColumn: Ordinal

			annotation SummarizationSetBy = Automatic

Exemple de Time Intelligence

Il existe un exemple de Time Intelligence d’un groupe de calcul dans l’article Groupes de calcul dans les modèles tabulaires Analysis Services, que nous pouvons utiliser pour remplir certains éléments de calcul. L’exemple peut être ajouté à n’importe quel modèle avec une table Date , ou vous pouvez télécharger Adventure Works DW 2020 PBIX à partir d’un exemple de modèle DAX - DAX.

Renommer un groupe de calcul

Pour renommer le groupe de calcul, double-cliquez sur celui-ci dans le volet Données, ou sélectionnez-le et utilisez le volet Propriétés.

Capture d’écran montrant comment renommer un groupe de calcul.

Renommer une colonne de groupe de calcul

Pour renommer la colonne d’un groupe de calcul, double-cliquez sur celle-ci dans le volet Données, ou sélectionnez-la et utilisez le volet Propriétés. La colonne que vous sélectionnez est la colonne que vous utilisez sur les éléments visuels ou dans les trancheurs pour appliquer un élément de calcul spécifique.

Capture d’écran montrant comment renommer une colonne de groupe de calcul.

Renommer un élément de calcul

Le premier élément de calcul a été créé en tant que SELECTEDMEASURE(). Vous pouvez donc le renommer en double-cliquant dessus, ou en utilisant également le volet Propriétés.

Capture d’écran montrant comment renommer un élément de calcul.

Créer d’autres éléments de calcul

Pour créer davantage d'éléments de calcul, vous pouvez utiliser le menu contextuel de la section Éléments de calcul ou du groupe de calcul lui-même et choisir Nouvel élément de calcul, ou utiliser le volet Propriétés de la section Éléments de calcul.

Capture d’écran montrant comment créer un nouvel élément de calcul.

Une fois que tous les éléments de calcul Time Intelligence sont ajoutés, le groupe de calcul ressemble à l’image suivante.

Capture d’écran du groupe de calcul avec tous les éléments de calcul « Time Intelligence ».

Notez les icônes en forme de triangle rouge qui indiquent les erreurs. Les erreurs sont dues au fait que les exemples d’expressions DAX utilisent la table Date appelée DimDate. Je dois donc mettre à jour les expressions DAX pour utiliser le nom Date à la place. L’image suivante montre l’expression DAX avant la correction.

Capture d’écran de l’expression DAX incorrecte.

Une fois que j’ai corrigé l’expression DAX, l’erreur disparaît.

Capture d’écran de l’expression DAX corrigée.

Une fois que j’ai corrigé chacune des erreurs des éléments de calcul, les icônes d’avertissement en forme de triangle rouge n’apparaissent plus.

Capture d’écran des expressions DAX corrigées dans la zone des éléments de calcul.

Réorganiser les éléments de calcul

Pour réorganiser les éléments de calcul en fonction de la logique que vous préférez, sélectionnez la section Éléments de calcul dans le volet Propriétés, ou cliquez avec le bouton droit sur le menu contextuel de l’élément de calcul pour le déplacer vers le haut ou vers le bas dans la liste.

Capture d’écran de la réorganisation des éléments de calcul.

Ajouter une chaîne de format dynamique à un élément de calcul

Les éléments de calcul utilisent la mise en forme de mesure sous-jacente par défaut. Nous pouvons afficher à la place YOY% sous forme de pourcentage. Pour ce faire, sélectionnez l’élément de calcul YOY%, puis activez Chaîne de format dynamique dans le volet Propriétés, ce qui vous permet de spécifier une expression DAX pour créer une chaîne de format. Pour cet exemple, il ne nécessite aucun élément conditionnel, donc simplement #,#0.00% modifie le format en pourcentage lorsque cet élément de calcul est appliqué, comme illustré dans l’image suivante.

Capture d’écran de la modification du format des éléments de données sous-jacents.

Utilisation du groupe de calcul dans les rapports

Pour utiliser votre nouveau groupe de calcul dans un rapport, accédez à la vue Rapport, créez un visuel Matrice, puis ajoutez les éléments suivants :

  1. Colonne Month (Mois) de la table Date vers Rows (Lignes)
  2. Calcul du temps du groupe de calcul Time Intelligence vers Columns (Colonnes)
  3. Mesure Orders (Commandes) vers Values (Valeurs)

Remarque

Si la mesure Orders n’est pas créée dans le modèle, vous pouvez utiliser une autre mesure ou accéder au ruban et choisir Nouvelle mesure pour la créer avec cette expression DAX.

Orders = DISTINCTCOUNT('Sales Order'[Sales Order])

L’image suivante montre la création d’un visuel.

Capture d’écran de l’utilisation de groupes de calcul dans les rapports.

Les éléments de calcul de Columns (Colonnes) dans le visuel Matrix (Matrice) affichent la mesure Orders (Commandes) regroupée selon chaque élément de calcul. Vous pouvez également appliquer un élément de calcul individuel à plusieurs mesures en ajoutant la colonne de groupe de calcul à un visuel Slicer (Segment).

Capture d’écran de l’application d’éléments de calcul individuels à plusieurs mesures.

Utilisation de l’élément de calcul dans les mesures

Vous pouvez créer une mesure avec une expression utilisant un élément de calcul sur une mesure spécifique.

Pour créer une mesure [Orders YOY%] , vous pouvez utiliser l’élément de calcul avec CALCULATE.

Orders YOY% = 
    CALCULATE(
        [Orders],
        'Time Intelligence'[Time Calculation] = "YOY%"
    )

Définition de la priorité des groupes de calcul

Enfin, si vous ajoutez d’autres groupes de calcul au modèle, vous pouvez spécifier l’ordre dans lequel ils s’appliquent à une mesure avec la propriété de précédence. Vous pouvez ajuster la priorité du groupe de calcul dans le volet propriétés de la section Groupes de calcul , comme illustré dans l’image suivante.

Capture d’écran de la définition de la priorité des groupes de calcul.

Découvrez davantage d’informations sur la priorité des groupes de calcul dans l’article Groupes de calcul dans les modèles tabulaires Analysis Services.

Expressions de sélection pour les groupes de calcul

Vous pouvez définir des expressions de sélection pour les groupes de calcul pour obtenir un contrôle précis sur ce que le groupe de calcul retourne si les utilisateurs effectuent plusieurs, non valides ou aucune sélection sur le groupe de calcul. Voir les expressions de sélection.

Considérations

Les mesures de modèle changent en type de données variant

Dès qu’un groupe de calcul est ajouté à un modèle sémantique, les rapports Power BI utilisent le type de données variant pour toutes les mesures. Si, par la suite, tous les groupes de calcul sont supprimés du modèle, les mesures revient à leurs types de données d’origine.

Le type de données variant peut entraîner des chaînes de format dynamiques pour les mesures, ce qui, en utilisant une mesure pour la réutilisation, peut afficher une erreur. Utilisez la fonction FORMAT DAX pour que la mesure de variante soit reconnue à nouveau comme type de données de chaîne de caractères.

FORMAT([Dynamic format string], "")

Vous pouvez également réutiliser votre expression pour les chaînes de format dynamique avec une fonction définie par l’utilisateur DAX à la place.

Erreur des visuels lorsqu’un élément de calcul applique une opération mathématique sur une mesure non numérique

Les mesures non numériques sont couramment utilisées pour les titres dynamiques dans les visuels et dans les chaînes de format dynamique pour les mesures. L’erreur Ne peut pas convertir la valeur ... du type Texte au type Numérique s'affiche sur les visuels affectés. L’expression d’élément de calcul peut éviter cette erreur en ajoutant une vérification pour voir si la mesure est numérique avant d’appliquer l’opération mathématique. Utilisez l’ISNUMERIC dans l’élément de calcul.

Calculation item safe = 
    IF ( 
        // Check the measure is numeric
        ISNUMERIC( SELECTEDMEASURE() ),
            SELECTEDMEASURE() * 2,
            // Don't apply the calculation on a non-numeric measure
            SELECTEDMEASURE()
        )

Les articles suivants décrivent plus en détail les modèles de données ainsi que le mode DirectQuery.

Articles DirectQuery :