L’une des fonctionnalités les plus puissantes de Power Pivot est la possibilité de créer des relations entre tables, puis d’utiliser les tables associées pour rechercher ou filtrer des données associées. Vous récupérez des valeurs associées à partir de tables à l’aide du langage de formule fourni avec Power Pivot, Data Analysis Expressions (DAX). DAX utilise un modèle relationnel et peut donc récupérer facilement et avec précision des valeurs associées ou correspondantes dans une autre table ou colonne. Si vous avez l’habitude d’utiliser RECHERCHEV dans Excel, cette fonctionnalité dans Power Pivot est similaire, mais beaucoup plus facile à implémenter.
Vous pouvez créer des formules qui effectuent des recherches dans le cadre d’une colonne calculée ou d’une mesure à utiliser dans un tableau ou graphique croisé dynamique. Pour plus d’informations, voir les rubriques suivantes :
Champs calculés dans Power Pivot
Colonnes calculées dans Power Pivot
Cette section décrit les fonctions DAX fournies pour la recherche, ainsi que quelques exemples d’utilisation des fonctions.
Remarque
Selon le type d’opération ou de formule de recherche que vous voulez utiliser, vous devrez peut-être d’abord créer une relation entre les tables.
Présentation des fonctions de recherche
La possibilité de rechercher des données correspondantes ou associées à partir d’une autre table est particulièrement utile dans les situations où la table active n’a qu’un identificateur d’un certain type, mais les données dont vous avez besoin (comme le prix du produit, le nom ou d’autres valeurs détaillées) sont stockées dans une table associée. Ceci est également utile lorsqu’il existe plusieurs lignes dans une autre table liées à la ligne actuelle ou à la valeur actuelle. Par exemple, vous pouvez facilement récupérer toutes les ventes liées à une région, un magasin ou un vendeur particulier.
Contrairement aux fonctions de recherche Excel telles que RECHERCHEV, qui sont basées sur des tableaux, ou RECHERCHE, qui obtient la première de plusieurs valeurs correspondantes, DAX suit les relations existantes entre les tables jointes par des clés pour obtenir la valeur associée unique qui correspond exactement. DAX peut également récupérer une table d’enregistrements liés à l’enregistrement actuel.
Remarque
Si vous avez l’habitude d’utiliser les bases de données relationnelles, vous pouvez considérer les recherches dans Power Pivot comme une instruction de sous-sélection imbriquée dans Transact-SQL.
Récupération d’une valeur associée unique
La fonction RELATED renvoie une valeur unique d’une autre table liée à la valeur actuelle dans la table active. Vous spécifiez la colonne qui contient les données que vous souhaitez et la fonction suit les relations existantes entre les tables pour extraire la valeur de la colonne spécifiée dans la table associée. Dans certains cas, la fonction doit suivre une chaîne de relations pour récupérer les données.
Par exemple, supposons que vous disposiez d’une liste des expéditions du jour dans Excel. Toutefois, la liste ne contient qu’un numéro d’identification d’employé, un numéro de commande et un numéro d’identification d’expéditeur, ce qui rend le rapport difficile à lire. Pour obtenir les informations supplémentaires souhaitées, vous pouvez convertir cette liste en une table liée Power Pivot, puis créer des relations avec les tables Employé et Revendeur, en faisant correspondre EmployeeID au champ EmployeeKey et ResellerID au champ ResellerKey.
Pour afficher les informations de recherche dans votre table liée, vous ajoutez deux nouvelles colonnes calculées, avec les formules suivantes :
= CONNEXES('Employees'[NomEmployé])
= LIÉ('Revendeurs'[CompanyName])
Expéditions du jour avant la recherche
| OrderID | EmployeeID | ID revendeur |
|---|---|---|
| 100314 | 230 | 445 |
| 100315 | 15 | 445 |
| 100316 | 76 | 108 |
Table Employees
| EmployeeID | Contoso | Revendeur |
|---|---|---|
| 230 | Kuppa Vamsi | Systèmes à cycle modulaire |
| 15 | Pilar Ackeman | Systèmes à cycle modulaire |
| 76 | Kim Ralls | Vélos associés |
Expéditions d’aujourd’hui avec des recherches
| OrderID | EmployeeID | ID revendeur | Contoso | Revendeur |
|---|---|---|---|---|
| 100314 | 230 | 445 | Kuppa Vamsi | Systèmes à cycle modulaire |
| 100315 | 15 | 445 | Pilar Ackeman | Systèmes à cycle modulaire |
| 100316 | 76 | 108 | Kim Ralls | Vélos associés |
La fonction utilise les relations entre la table liée et la table Employés et Revendeurs pour obtenir le nom correct de chaque ligne du rapport. Vous pouvez également utiliser des valeurs associées pour les calculs. Pour plus d’informations et d’exemples, voir Fonction ASSOCIÉE.
Récupération d’une liste de valeurs associées
La fonction RELATEDTABLE suit une relation existante et renvoie une table qui contient toutes les lignes correspondantes de la table spécifiée. Par exemple, supposons que vous souhaitiez connaître le nombre de commandes passées par chaque revendeur cette année. Vous pouvez créer une colonne calculée dans la table Revendeurs qui inclut la formule suivante, qui recherche les enregistrements de chaque revendeur dans la table ResellerSales_USD et compte le nombre de commandes individuelles passées par chaque revendeur.
=COUNTROWS(RELATEDTABLE(ResellerSales_USD))
Dans cette formule, la fonction RELATEDTABLE obtient d’abord la valeur de Clérevendeur pour chaque revendeur de la table active. (Vous n’avez pas besoin de spécifier la colonne ID n’importe où dans la formule, car Power Pivot utilise la relation existante entre les tables.) La fonction RELATEDTABLE récupère ensuite toutes les lignes de la table ResellerSales_USD qui sont liées à chaque revendeur et compte les lignes. S’il n’existe aucune relation (directe ou indirecte) entre les deux tables, vous obtenez toutes les lignes de la table ResellerSales_USD.
Pour le revendeur Systèmes à cycle modulaire de notre exemple de base de données, il y a quatre commandes dans la table des ventes, donc la fonction retourne 4. Pour Associated Bikes, le revendeur n’a pas de ventes, donc la fonction renvoie un vide.
| Revendeur | Enregistrements dans la table des ventes pour ce revendeur |
|---|---|
| Systèmes à cycle modulaire | ID du revendeur |
| 445 | |
| 445 | |
| 445 | |
| 445 | |
| ID du revendeur | |
| Vélos associés |
Remarque
Étant donné que la fonction RELATEDTABLE renvoie une table, et non une valeur unique, elle doit être utilisée comme argument d’une fonction qui effectue des opérations sur les tables. Pour plus d’informations, reportez-vous à la section Fonction RELATEDTABLE.
Haut de la page