Passer au contenu principal

L'une des caractéristiques de Power BI (et de Power Pivot) est que les données ne peuvent pas être modifiées une fois qu'elles sont chargées dans la base de données, c'est par conception. Power BI est une base de données de rapports, pas une feuille de calcul. Power Pivot et Power BI sont conçus pour générer des rapports précis sur les données en cours de téléchargement et ne permettent pas à un utilisateur de «modifier» les données après le chargement. Ce paradigme est très différent pour ceux qui vivent dans un monde Excel. Lorsque vous utilisez Excel, vous pouvez remplacer n'importe quel nombre (ou nombres) de votre choix, au cas où vous auriez besoin d'effectuer une telle modification.

La meilleure solution: corrigez la police!

Permettez-moi de faire cette déclaration à l’avance et d’être clair. La meilleure façon de dépanner vos données source est de revenir à la source et d'y corriger les problèmes. C'est ma recommandation sur la façon dont vous devriez résoudre ces problèmes. Cependant, parfois, cela n'est pas possible pour une raison quelconque. Cet article explique comment utiliser Power Query pour remplacer les données incorrectes lors du chargement lorsque vous ne pouvez pas les modifier dans la source, quelle qu'en soit la raison.

Tables d'auto-référence

Une option que vous pouvez utiliser pour modifier les données consiste à utiliser le concept de tables auto-référencées dont j'ai parlé dans cet article. Cette approche peut fonctionner, mais elle a un inconvénient. Vous devez charger toutes les données de la source dans Excel et ne modifier que les données individuelles incorrectes. Bien que cela puisse fonctionner pour les petits ensembles de données, ce n'est pas pratique pour les grands ensembles de données.

Utiliser des tables de remplacement

Une meilleure façon de résoudre ce problème avec Power Query consiste à créer un tableau Excel contenant les exceptions qui doivent être corrigées. Ensuite, chargez ce tableau Excel dans Power Query avec la source et remplacez les données incorrectes par les données corrigées. J'ai écrit un article sur la façon de remplacer des points de données individuels en 2017. Dans l'article d'aujourd'hui, je vais vous montrer comment utiliser des tables de substitution pour remplacer des enregistrements entiers dans vos données source.

J'utilise la base de données Adventure Works pour faire une démonstration.

Remplacement des enregistrements incorrects par une table de remplacement

Voici les étapes pour remplacer les mauvais enregistrements par de bons enregistrements à l'aide d'une table de remplacement.

  • Identifiez les mauvais enregistrements dans la table source.
  • Prenez une copie de tous les enregistrements et ajoutez-la à une table de remplacement (exception) dans Excel.
  • Apportez les modifications nécessaires aux registres.
  • Utilisez Power Query pour supprimer les enregistrements d'origine de la source et les remplacer par la version modifiée.

Voici une démonstration étape par étape

Les entrées suivantes concernent une facture (# 1) dans la table Ventes. Disons que le coût (n ° 2) d'une ligne de commande est erroné.

Vous devez identifier les enregistrements (lignes) à corriger. Vous pouvez le faire à partir de la vue des données dans Power BI Desktop. Accédez simplement à la vue des données, filtrez par le numéro de facture, puis copiez le tableau qui contient toutes les lignes de cette facture.

Copier depuis Dm
  • Vous pouvez ensuite coller les enregistrements dans une feuille de calcul Excel.
  • Convertissez les enregistrements en table (ou ajoutez-les à une table existante si vous en avez déjà une). Donnez un bon nom à la table, dites InvOverrides.
  • Voir un exemple ci-dessous.

En excel

  • Conservez uniquement les lignes que vous souhaitez modifier et supprimez le reste. Vous pouvez le faire dans Power BI lorsque vous extrayez les enregistrements pour la première fois, ou simplement le faire dans Excel une fois qu'une copie y est téléchargée.
  • Effectuez les corrections nécessaires dans chaque ligne (voir ci-dessous en vert).

  • Dans Power Query dans Power BI, créez une nouvelle requête et chargez la table InvOverRides à partir du fichier Excel.
    Consultation des Inndromeides
  • Créez une requête intermédiaire pour la table Sales et nommez-la SalesStaging. Vous pouvez le faire en cliquant avec le bouton droit de la souris sur la dernière étape du tableau des ventes actuel et en sélectionnant "Extraire le précédent".

Créer une mise en scène

  • Vous disposez maintenant de la requête SalesStaging avec les lignes de données d'origine.

Demande de stade de vente

  • Pour supprimer les lignes à corriger du tableau d'origine, il suffit de fusionner la requête SalesStaging avec InvOverRides à l'aide d'un gauche antisyndicale. Cela conservera les enregistrements qui n'existent que dans la table source et supprimera ceux qui existent également dans la table InvOverRides, exactement ce dont vous avez besoin. Veuillez bien noter: j'ai joint les 2 tables comme indiqué ci-dessous en utilisant 2 colonnes pour la jointure. Cela est nécessaire pour identifier correctement les lignes uniques (la concaténation à 2 colonnes rend chaque ligne unique). Cela peut être différent avec vos données.

La vue des dépendances de la requête finale ressemblera à ceci.

Vue des dépendances

Envelopper

Il existe différentes manières de réaliser cet exercice. Vous n'avez pas techniquement besoin de la table de configuration, mais j'aime en créer une pour éviter que la gestion des modifications ne soit chargée de la table finale.