L’une des fonctionnalités les plus puissantes de Power Pivot la possibilité de créer des relations entre les tables, puis d’utiliser les tables associées pour rechercher ou filtrer des données liées. Vous pouvez récupérer des valeurs associées à partir de tables à l’aide du langage de formule fourni avecPower Pivot, DAX (Data Analysis Expressions). DAX utilise un modèle relationnel et par conséquent peut récupérer facilement et précisément les valeurs associées ou correspondantes dans une autre table ou colonne. Si vous êtes familiarisé avec la fonction RECHERCHEV dans Excel, cette fonctionnalité dans Power Pivot est similaire, mais beaucoup plus facile à implémenter.
Vous pouvez créer des formules qui font des recherche dans une colonne calculée ou dans le cadre d’une mesure à utiliser dans un tableau croisé dynamique ou PivotChart. 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 de recherche ou de formule de recherche que vous voulez utiliser, vous devrez peut-être créer d’abord une relation entre les tables.
Comprendre les fonctions de recherche
La possibilité de rechercher des données correspondantes ou liées à partir d’une autre table est particulièrement utile dans les situations où la table actuelle ne contient qu’un identificateur, mais que les données dont vous avez besoin (prix du produit, nom ou autres valeurs détaillées) sont stockées dans une table associée. Elle est également utile lorsque plusieurs lignes d’une autre table sont liées à la ligne 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 des valeurs correspondantes multiples, DAX suit des relations existantes entre les tables jointes par des clés pour obtenir la valeur liée unique qui correspond exactement. DAX peut également récupérer une table d’enregistrements liés à l’enregistrement actuel.
Remarque : Si vous êtes familiarisé avec les bases de données relationnelles, vous pouvez avoir l’apparence que les Power Pivot s’apparentent à une instruction de sous-zone imbrié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 de la table actuelle. Vous spécifiez la colonne qui contient les données que vous souhaitez et la fonction suit des relations existantes entre les tables pour extraire la valeur de la colonne spécifiée dans la table lié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 avez une liste des expéditions du jour dans Excel. Toutefois, la liste ne contient qu’un numéro de référence d’employé, un numéro de référence de commande et un numéro de référence d’expéditeur, ce qui rend l’état difficile à lire. Pour obtenir les informations supplémentaires dont vous avez besoin, vous pouvez convertir cette liste en table liée Power Pivot, puis créer des relations avec les tables Employés 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 devez ajouter deux nouvelles colonnes calculées, avec les formules suivantes :
= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])
Expéditions du jour avant la recherche
OrderID |
EmployeeID |
ResellerID |
---|---|---|
100314 |
230 |
445 |
100315 |
15 |
445 |
100316 |
76 |
108 |
Table Employees
EmployeeID |
Employé |
Revendeur |
---|---|---|
230 |
Kuppa Vamsi |
Systèmes de cycle modulaire |
15 |
Pilar Amanman |
Systèmes de cycle modulaire |
76 |
Kim Ralls |
Vélos associés |
Expéditions du jour avec recherche
OrderID |
EmployeeID |
ResellerID |
Employé |
Revendeur |
---|---|---|---|---|
100314 |
230 |
445 |
Kuppa Vamsi |
Systèmes de cycle modulaire |
100315 |
15 |
445 |
Pilar Amanman |
Systèmes de 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 pour chaque ligne du rapport. Vous pouvez également utiliser des valeurs associées pour les calculs. Pour plus d’informations et d’exemples, voir Fonction RELATED.
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 vouliez connaître le nombre de commandes passées cette année par chaque revendeur. Vous pouvez créer une nouvelle colonne calculée dans la table Resellers 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 tout d’abord la valeur de ResellerKey pour chaque revendeur de la table actuelle. (Il est inutile 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 associée à chaque revendeur, et compte le nombre de lignes. S’il n’existe aucune relation (directe ou indirecte) entre les deux tables, vous obtenez toutes les lignes de ResellerSales_USD table.
Pour les systèmes de cycle modulaires revendeurs dans notre exemple de base de données, la table ventes contient quatre commandes, la fonction renvoie 4. Pour Associated Bikes, le revendeur n’a aucune vente, aussi la fonction renvoie-t-elle une carte vide.
Revendeur |
Enregistrements dans la table Ventes de ce revendeur |
|
---|---|---|
Systèmes de cycle modulaire |
ID revendeur |
SalesOrderNumber |
445 |
SO53494 |
|
445 |
SO71872 |
|
445 |
SO65233 |
|
445 |
SO59000 |
|
ID revendeur |
SalesOrderNumber |
|
Vélos associés |
Remarque : 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 des tables. Pour plus d’informations, voir Fonction RELATEDTABLE.