Introduction à RELATED()
Dans le monde de l’analyse de données, toutes les informations ne résident pas dans un seul tableau. Souvent, nous devons récupérer les valeurs d’une autre table pour compléter notre analyse. Entrez la fonction RELATED(), une pierre angulaire de DAX (Data Analysis Expressions) conçue précisément pour cette tâche.
-
Signature de fonction :
RELATED(<columnName>)
- Objectif : La fonction RELATED() est utilisée pour récupérer une valeur d'une table liée lorsqu'une relation est établie entre elles.
Concepts de base
-
Relations : Pour que RELATED() fonctionne, il doit exister une relation entre les tables. Il s'agit généralement d'une relation un-à-plusieurs établie à l'aide de clés primaires et étrangères.
-
Attente de valeur unique : RELATED() s'attend à ce que pour un contexte de ligne donné, il n'y ait qu'une seule valeur correspondante dans la table associée. Si la fonction trouve plusieurs valeurs, elle renverra une erreur.
-
Dépendance du contexte de ligne : cette fonction dépend du contexte de ligne. Il récupère les données associées en fonction de la ligne en cours d'évaluation. Par exemple, lors du calcul des ventes totales d'un produit, RELATED() peut être utilisé pour récupérer le prix du produit à partir d'une table « Produits » associée.
Cas d'utilisation typiques
-
Amélioration des tables avec des données externes : Supposons que vous disposiez d'une table « Ventes » avec les identifiants de produits mais pas leurs noms. Si les noms de produits résident dans une table « Produits », vous pouvez utiliser RELATED() pour les récupérer et les afficher à côté des ID dans la table « Ventes ».
-
Calcul des mesures dérivées : envisagez un scénario dans lequel vous avez des ventes unitaires et avez besoin du prix du produit pour calculer les ventes totales. Si le prix du produit se trouve dans un autre tableau, RELATED() s'avère pratique.
-
Enrichissement des données : améliorez votre ensemble de données de base avec des détails supplémentaires provenant de tableaux associés. Par exemple, ajouter les données démographiques des clients d'un tableau « Clients » à un tableau « Transactions » pour une analyse plus complète.
Pièges et solutions courants
-
Relations manquantes ou rompues : si vous constatez que RELATED() ne renvoie pas de valeurs ou renvoie des erreurs, la première chose à vérifier est la relation entre les tables. Assurez-vous qu’il est correctement configuré et actif.
-
Correspondances multiples : s'il existe plusieurs correspondances dans la table associée, envisagez de revoir la conception de la relation ou utilisez plutôt la fonction RELATEDTABLE().
-
Aucun contexte de ligne : RELATED() nécessite un contexte de ligne. S'il est utilisé dans un scénario sans, il ne fonctionnera pas comme prévu. Dans de tels cas, vous devrez peut-être l'envelopper dans des fonctions telles que CALCULATE() qui peuvent modifier le contexte.
Conseils pour la maîtrise
-
Combinaison avec d'autres fonctions : RELATED() peut être efficacement combinée avec d'autres fonctions DAX pour des calculs plus avancés. Par exemple, vous pouvez l'utiliser dans une fonction IF() pour récupérer des données de manière conditionnelle en fonction de certains critères.
-
Comprendre les filtres : n'oubliez pas que tout filtre appliqué à la table de base influencera également le résultat de RELATED(). Il respecte le contexte de filtre actuel du modèle de données.
-
Considérations sur les performances : la récupération de données dans plusieurs tables peut avoir un impact sur les performances. Surveillez toujours les performances des requêtes, en particulier lorsque vous travaillez avec de grands ensembles de données.
Conclusion (Partie 1)
RELATED() est un outil puissant de la boîte à outils DAX, servant de pont entre des ensembles de données disparates. En comprenant ses subtilités et ses pièges potentiels, les analystes peuvent extraire efficacement les données associées, enrichir leurs tableaux et améliorer leurs capacités analytiques. Dans la section suivante, nous approfondirons les techniques avancées et les meilleures pratiques pour exploiter pleinement le potentiel de cette fonction.
RELATED() : Progrès avec la liaison de données
Plongée en profondeur dans l'utilisation avancée
Après avoir couvert les aspects fondamentaux de la fonction RELATED() dans la section précédente, approfondissons ses techniques avancées d'utilisation et d'optimisation.
-
Au-delà des relations basiques :
- Relations bidirectionnelles : par défaut, les relations dans les modèles de données sont unidirectionnelles. Il existe cependant des cas où les relations bidirectionnelles sont utiles. Lorsqu'il est activé, vous pouvez utiliser RELATED() pour récupérer des valeurs dans les deux sens.
- Utilisation dans les hiérarchies : dans les ensembles de données avec des structures hiérarchiques (par exemple, Régions > Pays > Villes), RELATED() peut jouer un rôle essentiel dans la récupération de détails de niveau supérieur ou inférieur.
-
Calculs améliorés avec RELATED() :
- Regroupement dynamique : récupérez les données associées pour regrouper ou catégoriser votre table principale de manière dynamique. Par exemple, catégorisez les produits en « Premium » ou « Standard » en fonction des tables d'attributs de produits associés.
- Agrégation conditionnelle : utilisez RELATED() dans des fonctions d'agrégation telles que SUMX() ou AVERAGEX() pour agréger de manière conditionnelle des données en fonction des valeurs de table associées.
-
Combinaison avec RELATEDTABLE() :
- Alors que RELATED() récupère une seule valeur d'une table associée, RELATEDTABLE() renvoie une table entière. Vous pouvez utiliser les deux en tandem pour les scénarios dans lesquels vous avez besoin de données individuelles et groupées.
Optimiser les performances avec RELATED()
-
Relations limitantes : plus votre modèle de données a de relations, plus il devient complexe pour DAX de calculer les valeurs. Maintenez uniquement les relations nécessaires et évitez les connexions redondantes ou qui se chevauchent.
-
Récupération filtrée : au lieu de récupérer toutes les données associées, puis de les filtrer, appliquez des filtres directement dans RELATED() dans la mesure du possible. Cela réduit le volume de données traitées.
-
Tirer parti des tableaux résumés : si votre cas d'utilisation principal est l'agrégation, envisagez de travailler avec des tableaux résumés avec des mesures essentielles pré-calculées. Cela réduit le besoin de récupérations entre tables.
Scénarios et solutions courants
-
Types de données incompatibles : assurez-vous que les colonnes impliquées dans la relation ont le même type de données. Une erreur courante consiste à avoir une colonne sous forme de texte et une autre sous forme de nombre.
-
Résultats inexacts : si RELATED() renvoie des valeurs inattendues, recherchez des erreurs dans la relation, les filtres appliqués ou la présence de valeurs en double dans la table associée.
-
Gestion des erreurs avec élégance : utilisez des fonctions de gestion des erreurs telles que IFERROR() en conjonction avec RELATED(). Cela garantit que vos mesures et calculs ne seront pas interrompus en présence d'erreurs.
Élargir les connaissances
-
Lectures complémentaires : Explorez la documentation et les forums officiels de Microsoft DAX pour des scénarios et des solutions plus complexes liés à RELATED().
-
Études de cas : les communautés en ligne proposent de nombreuses études de cas présentant des applications réelles de RELATED(). Ceux-ci peuvent donner un aperçu d’utilisations et d’astuces non conventionnelles.
-
Cours & Tutoriels : Plusieurs plateformes en ligne proposent des cours DAX dédiés. Investir dans un apprentissage structuré peut accélérer votre maîtrise de fonctions telles que RELATED().
Conclusion (Partie 2)
Alors que nous terminons notre étude approfondie de la fonction RELATED(), il est évident que même si elle répond à un objectif simple : récupérer des données associées, elle recèle un immense potentiel lorsqu'elle est utilisée correctement. Il ne s'agit pas seulement de relier des tables ; il s'agit de tisser un récit complet à partir d'ensembles de données dispersés. Avec un mélange de bonnes pratiques, de techniques avancées et d'apprentissage continu, RELATED() peut être un outil formidable dans le répertoire de tout analyste de données.