Didacticiel : création de colonnes calculées dans Power BI DesktopTutorial: Create calculated columns in Power BI Desktop

Parfois, les données que vous analysez ne contiennent pas de champ particulier vous permettant d’obtenir les résultats que vous recherchez.Sometimes the data you’re analyzing just doesn’t contain a particular field you need to get the results you’re after. C’est là qu’interviennent les colonnes calculées.This is where calculated columns come in. Les colonnes calculées utilisent des formules DAX (Data Analysis Expressions) pour définir les valeurs d’une colonne.Calculated columns use Data Analysis Expressions (DAX) formulas to define a column’s values. Ces valeurs peuvent concerner n’importe quoi, qu’il s’agisse d’assembler des valeurs de texte à partir de plusieurs colonnes différentes ailleurs dans le modèle, ou de calculer une valeur numérique à partir d’autres valeurs.Those values can be just about anything, whether it be putting together text values from a couple of different columns elsewhere in the model, or calculating a numeric value from other values. Par exemple, supposons que vos données incluent des colonnes City (Ville) et State (État) (en tant que champs dans la liste Champs), mais que vous voulez un champ Location (Emplacement) unique qui possède ces deux informations sous la forme d’une valeur unique, telle que Miami, FL.For example, let’s say your data has a City and State columns (as fields in the Fields list), but you want a single Location field that has both as a single value, like Miami, FL. C’est là précisément qu’interviennent les colonnes calculées.This is precisely what calculated columns are for.

Les colonnes calculées sont semblables aux mesures, dans le sens où toutes deux reposent sur une formule DAX, mais elles diffèrent dans la manière dont elles sont utilisées.Calculated columns are similar to measures in that both are based on a DAX formula, but they differ in how they are used. Les mesures sont souvent utilisées dans la zone Valeurs d’une visualisation, pour calculer les résultats en fonction d’autres champs qui figurent sur une ligne d’une table ou dans une zone Axe, Légende ou Groupe d’une visualisation.Measures are most often used in the Values area of a visualization, to calculate results based on other fields you have on a row in a table, or in an Axis, Legend, or Group area of a visualization. Les colonnes calculées sont quant à elles utilisées quand vous souhaitez obtenir les résultats de la colonne sur cette ligne de la table, ou dans la zone Axe, Légende ou Groupe.Calculated columns on the other hand are used when you want the column’s results on that row in the table, or in the Axis, Legend, or Group area.

Ce didacticiel va vous aider à comprendre les colonnes calculées et à créer vos propres colonnes calculées dans Power BI Desktop.This tutorial will guide you through understanding and creating some of your own calculated columns in Power BI Desktop. Il s’adresse aux utilisateurs de Power BI qui savent déjà comment créer des modèles plus avancés avec Power BI Desktop.It’s intended for Power BI users already familiar with using Power BI Desktop to create more advanced models. Vous devez déjà bien connaître l’utilisation de la fonctionnalité Requête pour importer des données, l’utilisation de plusieurs tables connexes et l’ajout de champs dans le Canevas de rapport.You should already be familiar with using Query to import data, working with multiple related tables, and adding fields to the Report Canvas. Si vous découvrez seulement Power BI Desktop, veillez à consulter Prise en main de Power BI Desktop.If you’re new to Power BI Desktop, be sure to check out Getting Started with Power BI Desktop.

Pour effectuer les étapes de ce didacticiel, vous devez télécharger le fichier Contoso Sales Sample for Power BI Desktop.To complete the steps in this tutorial, you’ll need to download the Contoso Sales Sample for Power BI Desktop file. Il s’agit du même exemple de fichier que celui utilisé pour le didacticiel Créer vos propres mesures dans Power BI Desktop.This is the same sample file used for the Create your own measures in Power BI Desktop tutorial. Il contient déjà des données sur les ventes de la société fictive Contoso, Inc. Les données figurant dans ce fichier ayant été importées à partir d’une base de données, vous ne pourrez pas vous connecter à la source de données ni l’afficher dans l’Éditeur de requête.It already includes sales data from the fictitious company, Contoso, Inc. Because data in the file was imported from a database, you won’t be able to connect to the datasource or view it in Query Editor. Une fois le fichier sur votre ordinateur, ouvrez-le dans Power BI Desktop.When you have the file on your own computer, go ahead and open it in Power BI Desktop.

Création d’une colonne calculéeLet’s create a calculated column

Supposez que vous souhaitez afficher les catégories de produits avec les sous-catégories de produits dans une valeur unique sur les lignes, comme par exemple Cell phones – Accessories (Téléphones mobiles – Accessoires), Cell phones – Smartphones & PDAs (Téléphones mobiles – Smartphones et PDA), et ainsi de suite.Let’s say we want to display product categories together with product subcategories in a single value on rows, like Cell phones – Accessories, Cell phones – Smart phones & PDAs, and so on. Dans la vue Rapport ou Données (nous utilisons ici la vue Rapport), si nous observons nos tables de produit dans la liste Champs, nous constatons qu’aucun champ ne fournit ce que nous voulons.In Report View or Data View (we're using Report View here), If we look at our product tables in the Fields list, we see there’s no field that gives is what we want. Nous avons toutefois un champ ProductCategory (CatégorieProduits) et un champ ProductSubcategory (SousCatégorieProduits), chacun dans sa propre table.We do, however, have a ProductCategory field and a ProductSubcategory field, each in their own tables.

Nous allons créer une colonne calculée pour combiner les valeurs de ces deux colonnes et obtenir de nouvelles valeurs pour notre nouvelle colonne.We’ll create a new calculated column to combine values from these two column into new values for our new column. Il est intéressant de voir que vous devez combiner les données de deux tables différentes en une seule colonne.Interestingly enough, we need to combine data from two different tables into a single column. Comme nous utiliserons DAX pour créer la colonne, nous pouvons exploiter toute la puissance du modèle que nous possédons déjà, y compris les relations entre les différentes tables existantes.Because we’re going to use DAX to create our new column, we can leverage the full power of the model we already have, including the relationships between different tables that already exist.

Pour créer une colonne ProductFullCategoryTo create a ProductFullCategory column

  1. Effectuez un clic droit ou cliquez sur la flèche orientée vers le bas dans la table ProductSubcategory figurant dans la liste Champs, puis cliquez sur Nouvelle colonne.Right click, or click the down arrow on the ProductSubcategory table in the Fields list, and then click New Column. Cela garantira l’ajout de la nouvelle colonne dans la table ProductSubcategory (SousCatégorieProduits).This will make sure our new column is added to the ProductSubcategory table.

    La barre de formule apparaît en haut du canevas Rapport ou de la grille Données.The formula bar appears along the top of the Report canvas or Data grid. C’est là que nous pouvons renommer la colonne et entrer une formule DAX.This is where we can rename our column and enter a DAX formula.

    Par défaut une nouvelle colonne calculée est nommée simplement Colonne.By default a new calculated column is simply named Column. Si vous ne la renommez pas, quand vous en créerez d’autres, elles seront nommées Colonne 2, Colonne 3, etc.If we don’t rename it, when we create another, it will be named Column 2, Column 3, and so on. Nous voulons que nos colonnes soient facilement identifiables. Nous allons donc renommer la nouvelle colonne.We want our columns to be more identifiable, so we’ll give our new column a new name.

  2. Comme le nom Column (Colonne) est déjà en surbrillance dans la barre de formule, il vous suffit de taper ProductFullCategory (CatégorieComplèteProduits).Since the Column name is already highlighted in the formula bar, just type ProductFullCategory.

    À présent, vous pouvez commencer à entrer la formule.Now we can begin entering our formula. Les valeurs de votre nouvelle colonne doivent commencer par le nom ProductCategory issu de la table ProductCategory.We want the values in our new column to start with the ProductCategory name from the ProductCategory table. Comme cette colonne figure dans une table différente, bien qu’associée, nous devons utiliser la fonction RELATED pour l’obtenir.Because this column is in a different, but related table, we’re going to use the RELATED function to help us get it.

  3. Après le signe égal, tapez R. Une liste déroulante de suggestions s’affiche avec toutes les fonctions DAX commençant par la lettre R. Plus vous tapez de caractères, plus les suggestions de la liste se rapprochent de la fonction dont vous avez besoin.After the equals sign, type R. You’ll see a dropdown suggestion list appear with all of the DAX functions beginning with the letter R. The more we type, the more the suggestion list is scaled closer to the function we need. En regard de la fonction, vous verrez une description de la fonction.Next to the function you’ll see a description of the function. Sélectionnez RELATED en faisant défiler l’affichage et en appuyant sur Entrée.Select RELATED by scrolling down, and then pressing Enter.

    Une parenthèse ouvrante apparaît avec une autre liste de suggestions présentant toutes les colonnes disponibles que nous pouvons passer à la fonction RELATED.An opening parenthesis appears along with another suggestion list of all of the available columns we can pass to the RELATED function. Une description et des détails sur les paramètres attendus sont également affichés.A description and details on what parameters are expected is also shown.

    Une expression apparaît toujours entre une parenthèse ouvrante et une parenthèse fermante.An expression always appears between an opening and closing parenthesis. Dans le cas présent, votre expression contiendra un seul argument passé à la fonction RELATED : une colonne associée à partir de laquelle renvoyer les valeurs.In this case, our expression is going to contain a single argument passed to the RELATED function; a related column to return values from. La liste des colonnes est automatiquement affinée pour afficher uniquement les colonnes associées.The list of columns is automatically narrowed down to show only the columns that are related. Dans le cas présent, c’est la colonne ProductCategory (CatégorieProduits) de la table du même nom qui nous intéresse.In this case, we want the ProductCategory column in the ProductCategory table.

    Sélectionnez ProductCategory[ProductCategory], puis tapez une parenthèse fermante.Select ProductCategory[ProductCategory], and then type a closing parenthesis.

    Conseil

    Les erreurs de syntaxe sont le plus souvent provoquées par une parenthèse fermante manquante ou mal placée.Syntax errors are most often caused by a missing or misplaced closing parenthesis. Souvent, Power BI Desktop l’ajoute si vous l’avez oubliée.But often Power BI Desktop will add it if you forget.

  4. Nous souhaitons ajouter un symbole de tiret pour séparer les valeurs. Après la parenthèse fermante de la première expression, tapez une espace, une esperluette (&), un guillemet, une espace, un tiret (-), une autre espace, un guillemet fermant, puis une autre esperluette.We want to add a dash symbol to separate each value, so after the closing parenthesis of the first expression, type a space, ampersand (&), quote, space, dash (-), another space, a closing quote, and then another ampersand. La formule doit maintenant ressembler à ceci :Your formula should now look like this:

    ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & " - " &ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & " - " &

    Conseil

    Cliquez sur le chevron vers le bas situé à droite de la barre de formule pour développer l’éditeur de formule.Click the down chevron on the right side of the formula bar to expand the formula editor. Cliquez sur Alt et Entrée pour descendre d’une ligne et sur Tab pour déplacer les éléments.Click Alt & Enter to move down a line, and Tab to move things over.

  5. Enfin, entrez un autre crochet ouvrant, puis sélectionnez la colonne [ProductSubcategory] (SousCatégorieProduits) pour finir la formule.Finally, enter another opening bracket and then select the [ProductSubcategory] column to finish the formula. La formule doit ressembler à ceci :Your formula should look like this:

    Vous remarquerez que nous n’avons pas utilisé d’autre fonction RELATED dans la deuxième expression appelant la colonne ProductSubcategory (SousCatégorieProduits).You’ll notice we didn’t use another RELATED function in the second expression calling the ProductSubcategory column. Cela est dû au fait que cette colonne figure déjà dans la table où nous créons la nouvelle colonne.This is because this column is already in the same table we’re creating our new column in. Nous pouvons entrer [ProductCategory] avec le nom de la table (qualifié complet) ou sans (non qualifié).We can enter [ProductCategory] with the table name (fully qualified) or without (non-qualified).

  6. Complétez la formule en appuyant sur Entrée ou en cliquant sur la coche dans la barre de formule.Complete the formula by pressing Enter or clicking on the checkmark in the formula bar. La formule est validée et ajoutée à la liste de champs dans la table ProductSubcategory (SousCatégorieProduits).The formula is validated and added to the field list in the ProductSubcategory table.

    Vous remarquerez que les colonnes calculées sont marquées d’une icône spéciale dans la liste de champs.You’ll notice calculated columns get a special icon in the field list. Cela indique qu’elles contiennent une formule.This shows they contain a formula. Elles apparaissent ainsi seulement dans Power BI Desktop.They’ll only appear like this in Power BI Desktop. Dans le service PowerBI (votre site Power BI), il n’existe aucun moyen de modifier une formule. Un champ de colonne calculée n’a donc pas d’icône.In the PowerBI service (your Power BI site), there’s no way to change a formula, so a calculated column field doesn’t have an icon.

Ajouter la nouvelle colonne à un rapportLet’s add our new column to a report

À présent, nous pouvons ajouter la nouvelle colonne ProductFullCategory (CatégorieComplèteProduits) au canevas de rapport.Now we can add our new ProductFullCategory column to the report canvas. Examinez SalesAmount (MontantVentes) par ProductFullCategory (CatégorieComplèteProduits).Let’s look at SalesAmount by ProductFullCategory.

Faites glisser la colonne ProductFullCategory (CatégorieComplèteProduits) de la table ProductSubcategory (SousCatégorieProduits) vers le canevas de rapport, puis faites glisser le champ SalesAmount (MontantVentes) de la table Sales (Ventes) vers le graphique.Drag the ProductFullCategory column from the ProductSubcategory table onto the Report canvas, and then drag the SalesAmount field from the Sales table into the chart.

Création d’une autre colonne calculéeLet’s create another

Maintenant que vous savez comment créer une colonne calculée, créez-en une autre.Now that you know how to create a calculated column, let’s create another.

Le modèle Contoso Sales for Power BI Desktop contient les données de ventes des magasins actifs et inactifs.The Contoso Sales Sample for Power BI Desktop model contains sales data for both active and inactive stores. Vous souhaitez montrer clairement que les données affichées pour les magasins inactifs sont identifiées en tant que telles.We want to make it really clear that data shown for inactive stores is identified as such. Dans les faits, vous souhaitez un champ nommé Active StoreName.In-effect, we want a field named Active StoreName. Pour ce faire, vous allez créer une autre colonne.To do this, we’ll create another column. Dans le cas présent, nous voulons que notre nouvelle colonne Active StoreName (NomMagasin Actif) (en tant que champ) indique « Inactive » (Inactif) quand un magasin est inactif, mais qu’elle indique le nom réel du magasin s’il est actif.In this case, when a store is inactive, we want our new Active StoreName column (as a field) to show the store’s name as “Inactive”, but show the store’s real name when it’s an active store.

Heureusement, notre table Stores (Magasins) a une colonne nommée Status (Statut) avec la valeur On pour les magasins actifs et la valeur Off pour les magasins inactifs.Fortunately, our Stores table has a column named Status, with a value of On for active stores, and Off for inactive stores. Nous pouvons tester ces valeurs pour chaque ligne de la colonne Status (Statut) pour créer des valeurs dans la nouvelle colonne.We can test values for each row in the Status column to create new values in our new column.

Pour créer une colonne Active StoreNameTo create an Active StoreName column

  1. Créez une colonne calculée nommée Active StoreName (NomMagasin Actif) dans la table Stores (Magasins).Create a new calculated column named Active StoreName in the Stores table.

    Pour cette colonne, la formule DAX va vérifier le statut de chaque magasin.For this column, our DAX formula is going to check each stores status. Si le statut d’un magasin est On, la formule retourne le nom du magasin.If a stores status is On, our formula will return the stores name. Si sa valeur est Off, il aura le nom « Inactive ».If it’s Off, it will have the name, “Inactive”. Pour ce faire, nous allons utiliser la fonction logique IF pour tester le statut des magasins et retourner une valeur particulière si le résultat est true ou false.To do this, we’ll use the logical IF function to test the stores status and return a particular value if the result is true or false.

  2. Commencez à taper IF.Begin typing IF. La liste de suggestions vous montre ce que vous pouvez ajouter.The suggestion list will show what we can add. Sélectionnez IF.Select IF.

    Le premier argument pour IF est un test logique.The first argument for IF is a logical test. Nous souhaitons vérifier si un magasin a le statut « On ».We want to test whether or not a store has a status of “On”.

  3. Tapez un crochet ouvrant [, qui permet de sélectionner des colonnes de la table Stores.Type an opening bracket [ , which allows us to select columns from the Stores table. Sélectionnez [Status].Select [Status].

  4. Juste après [Status], tapez ="On", puis entrez une virgule (,) pour entrer le deuxième argument.Right after [Status], type ="On", then enter a comma (,) to enter the second argument. L’info-bulle suggère d’ajouter la valeur à utiliser lorsque le résultat est true.The tooltip suggests we need to add the value for when the result is true.

  5. Si le magasin a le statut On, nous voulons afficher le nom du magasin.If the store is On, we want to show the store’s name. Tapez un crochet ouvrant [ et sélectionnez la colonne [StoreName], puis tapez une autre virgule pour pouvoir entrer le troisième argument.Type an opening bracket [ and select the [StoreName] column, and then type another comma so we can enter our third argument.

  6. Nous devons ajouter la valeur à utiliser quand le résultat est false. Dans ce cas, nous voulons que la valeur soit « Inactive ».We need to add a value for when the result is false, in this case we want the value to be “Inactive”.

  7. Complétez la formule en appuyant sur Entrée ou en cliquant sur la coche dans la barre de formule.Complete the formula by pressing Enter or clicking on the checkmark in the formula bar. La formule est validée et ajoutée à la liste de champs dans la table Stores (Magasins).The formula is validated and added to the field list in the Stores table.

    Comme tout autre champ, nous pouvons utiliser la nouvelle colonne Active StoreName (NomMagasin Actif) dans les visualisations.Just like any other field, we can use our new Active StoreName column in visualizations. Dans ce graphique, les magasins dont le statut est On sont affichés individuellement par nom, mais les magasins dont le statut est Off sont regroupés et indiqués comme étant inactifs.In this chart, stores with a status of On are shown individually by name, but stores with a status of Off are grouped together and shown as Inactive.

Ce que vous avez apprisWhat we’ve learned

Les colonnes calculées peuvent enrichir vos données en favorisant des analyses simplifiées.Calculated columns can enrich our data, providing easier insights. Vous avez appris à créer des colonnes calculées à l’aide de la barre de formule, à utiliser la liste des suggestions et à nommer de manière optimale vos nouvelles colonnes.We've learned how to create calculated columns by using the formula bar, how to use the suggestions list, and how to best name our new columns.

Étapes suivantesNext steps

Si vous souhaitez approfondir vos connaissances des formules DAX et créer des colonnes calculées avec des formules DAX plus avancées, consultez Principes fondamentaux de DAX dans Power BI Desktop.If you want to take a deeper dive into DAX formulas, and create calculated columns with more advanced DAX formulas, see DAX Basics in Power BI Desktop. Cet article porte sur les concepts fondamentaux propres à DAX, tels que la syntaxe, les fonctions et une compréhension plus approfondie du contexte.This article focuses on fundamental concepts in DAX, such as syntax, functions, and a more thorough understanding of context.

Veillez à ajouter la page Informations de référence sur DAX (Data Analysis Expressions) à vos favoris.Be sure to add the Data Analysis Expressions (DAX) Reference to your favorites. Vous y trouverez des informations détaillées sur la syntaxe DAX, les opérateurs et plus de 200 fonctions DAX.This is where you'll find detailed info on DAX syntax, operators, and the over 200 DAX functions.