Partager via


Bonnes pratiques lors de l’utilisation de Power Query

Cet article contient quelques conseils et astuces pour tirer le meilleur parti de votre expérience de data wrangling dans Power Query.

Choisir le connecteur approprié

Power Query propose un grand nombre de connecteurs de données. Ces connecteurs vont des sources de données comme les fichiers TXT, CSV et Excel, aux bases de données comme Microsoft SQL Server en passant par des services SaaS renommés comme Microsoft Dynamics 365 et Salesforce. Si votre source de données n’est pas listée dans la fenêtre Obtenir des données, vous pouvez toujours utiliser le connecteur ODBC ou OLEDB pour vous y connecter.

L’utilisation du connecteur le mieux adapté à la tâche va vous permettre de bénéficier de la meilleure expérience et de performances optimales. Par exemple, l’utilisation du connecteur SQL Server au lieu du connecteur ODBC pour vous connecter à une base de données SQL Server vous offre non seulement une bien meilleure expérience d’obtention des données, mais aussi des fonctionnalités qui peuvent améliorer votre expérience et vos performances, comme le pliage des requêtes (query folding). Pour en savoir plus sur le pliage des requêtes, accédez à Vue d'ensemble de l'évaluation de requête et du pliage des requêtes dans Power Query.

Chaque connecteur de données suit une expérience standard, comme décrit dans Obtention des données. Cette expérience standardisée comporte une étape appelée Aperçu des données. Pendant cette étape, une fenêtre conviviale s’affiche pour vous permettre de sélectionner les données que vous voulez obtenir de votre source de données, si le connecteur l’autorise, ainsi qu’un aperçu simple de ces données. Vous pouvez même sélectionner plusieurs jeux de données de votre source de données par le biais de la fenêtre Navigateur, comme illustré dans l’image suivante.

Exemple de fenêtre Navigateur.

Remarque

Pour afficher la liste complète des connecteurs disponibles dans Power Query, accédez à Connecteurs dans Power Query.

Filtrer tôt

Il est toujours recommandé de filtrer vos données dès les premières phases de votre requête ou le plus tôt possible. Certains connecteurs bénéficieront de vos filtres par le biais du pliage de requête, comme décrit dans Vue d'ensemble de l'évaluation des requêtes et du pliage de requête dans Power Query. Une autre bonne pratique consiste à écarter toutes les données qui ne sont pas pertinentes. Ainsi, vous pouvez mieux vous concentrer sur votre tâche en affichant uniquement les données pertinentes dans la section Aperçu des données.

Vous pouvez utiliser le menu Filtre automatique qui présente une liste distincte des valeurs trouvées dans votre colonne pour sélectionner celles que vous voulez conserver ou écarter. Vous pouvez aussi utiliser la barre de recherche pour trouver plus facilement les valeurs dans votre colonne.

Menu Filtre automatique dans Power Query.

Vous pouvez aussi exploiter les filtres propres à un type comme le filtre Lors des précédent(e)s pour une colonne de date, de date et heure, voire même de fuseau horaire.

Filtre propre à un type pour une colonne de date.

Ces filtres propres à un type peuvent vous aider à créer un filtre dynamique qui récupère toujours les données des x secondes, minutes, heures, jours, semaines, mois, trimestres ou années précédents comme illustré dans l’image suivante.

Filtre propre à une date précédente.

Remarque

Pour en savoir plus sur le filtrage de vos données en fonction des valeurs d’une colonne, accédez à Filtrer par valeurs.

Effectuer les opérations coûteuses en dernier

Certaines opérations nécessitent de lire la totalité de la source de données pour retourner d’éventuels résultats. L’affichage de leur aperçu est donc lent dans l’éditeur Power Query. Par exemple, si vous effectuez un tri, les premières lignes triées peuvent se trouver à la fin des données sources. Ainsi, pour retourner des résultats, l’opération de tri doit d’abord lire toutes les lignes.

D’autres opérations (comme les filtres) n’ont pas besoin de lire toutes les données avant de retourner des résultats. Elles traitent plutôt les données en mode « streaming ». Les données « affluent » et les résultats sont retournés au fur et à mesure. Dans l’éditeur Power Query, de telles opérations ont uniquement besoin de lire une quantité suffisante des données sources pour renseigner l’aperçu.

Dans la mesure du possible, effectuez ces opérations en streaming en premier, puis effectuez celles qui sont plus coûteuses en dernier. Vous réduisez ainsi le temps d’attente de l’aperçu chaque fois que vous ajoutez une nouvelle étape à votre requête.

Travailler temporairement sur un sous-ensemble de vos données

Si vous attendez trop longtemps quand vous ajoutez de nouvelles étapes à votre requête dans l’éditeur Power Query, envisagez dans un premier temps d’effectuer une opération visant à conserver les premières lignes, puis de limiter le nombre de lignes sur lesquelles vous travaillez. Ensuite, une fois que vous avez ajouté toutes les étapes nécessaires, supprimez l’étape de conservation des premières lignes.

Utiliser le type de données correct

Certaines fonctionnalités de Power Query sont contextuelles et dépendent du type de données de la colonne sélectionnée. Par exemple, quand vous sélectionnez une colonne de date, les options disponibles sous le groupe Colonne de date et d’heure dans le menu Ajouter une colonne sont disponibles. En revanche, si la colonne n’a pas de type de données défini, alors ces options sont grisées.

Option propre à un type dans le menu Ajouter une colonne.

Une situation similaire se produit pour les filtres propres à un type, car ils sont spécifiques de certains types de données. Si votre colonne n’a pas le type de données correct défini, ces filtres propres au type ne sont pas disponibles.

Filtre propre à un type pour une colonne de date.

Il est primordial de toujours utiliser les types de données appropriés pour vos colonnes. Quand vous utilisez des sources de données structurées comme des bases de données, les informations de type de données sont tirées du schéma de table trouvé dans la base de données. En revanche, pour les sources de données non structurées comme les fichiers TXT et CSV, il est important de définir les types de données appropriés pour les colonnes provenant de ces sources de données. Par défaut, Power Query propose une détection automatique du type de données pour les sources de données non structurées. Pour en savoir plus sur cette fonctionnalité et son utilité, consultez Types de données.

Remarque

Pour en savoir plus sur l’importance des types de données et leur utilisation, consultez Types de données.

Exploration de vos données

Avant de commencer à préparer vos données et à ajouter de nouvelles étapes de transformation, nous vous recommandons d'activer les outils de profilage des données Power Query pour découvrir facilement des informations sur vos données.

Aperçu des données ou outils de profilage des données dans Power Query.

Ces outils de profilage des données vous aident à mieux comprendre vos données. Ils vous proposent des petites visualisations qui vous montrent des informations colonne par colonne, notamment les suivantes :

  • Qualité des colonnes : Fournit un petit graphique à barres et trois indicateurs qui représentent le nombre de valeurs dans la colonne réparties dans trois catégories : valeurs valides, d’erreur ou vides.
  • Répartition des colonnes : Fournit un ensemble de visuels sous les noms des colonnes, qui montrent la fréquence et la distribution des valeurs dans chaque colonne.
  • Profil de colonne : Fournit une vue plus approfondie de votre colonne et des statistiques qui y sont associées.

Vous pouvez aussi interagir avec ces fonctionnalités, afin de préparer plus facilement vos données.

Options de qualité des données.

Remarque

Pour en savoir plus sur les outils de profilage des données, accédez à Outils de profilage des données.

Documenter votre travail

Nous vous recommandons de documenter vos requêtes en renommant ou en ajoutant une description à vos étapes, requêtes ou groupes, selon vos besoins.

Bien que Power Query crée automatiquement un nom d’étape dans le volet des étapes appliquées, vous pouvez aussi renommer vos étapes ou y ajouter une description.

Volet des étapes appliquées montrant des étapes documentées et une description ajoutée.

Remarque

Pour en savoir plus sur toutes les fonctionnalités et composants disponibles dans le volet des étapes appliquées, accédez à Utilisation de la liste Étapes appliquées.

Adopter une approche modulaire

Il est tout à fait possible de créer une seule requête qui contient toutes les transformations et tous les calculs dont vous avez besoin. En revanche, si la requête contient un grand nombre d’étapes, il est alors probablement plus judicieux de la fractionner en plusieurs requêtes, qui se font successivement référence. L’objectif de cette approche est de simplifier et de dissocier les phases de transformation en fractions plus petites afin d’en faciliter la compréhension.

Par exemple, supposons que vous avez une requête qui comporte les neuf étapes indiquées dans l’image suivante.

Volet des étapes appliquées montrant des étapes documentées et une description ajoutée.

Vous pouvez fractionner cette requête en deux à l’étape Fusionner avec la table Prix. Ainsi, il est plus facile de comprendre les étapes qui ont été appliquées à la requête Sales avant la fusion. Pour effectuer cette opération, cliquez avec le bouton droit sur l’étape Fusionner avec la table Prix, puis sélectionnez l’option Extraire l’élément précédent.

Étape Extraire l’élément précédent.

Une boîte de dialogue vous invite ensuite à donner un nom à votre nouvelle requête. Votre requête est effectivement fractionnée en deux requêtes. Une première requête contient toutes les requêtes avant la fusion. La seconde requête comporte une étape initiale qui référence votre nouvelle requête et le reste des étapes que vous aviez dans votre requête d’origine à partir de l’étape Fusionner avec la table Prix.

Requête d’origine après l’action d’extraction de l’étape précédente.

Vous pouvez également avoir recours au référencement des requêtes selon vos besoins. Mais il convient de maintenir vos requêtes à un nombre d’étapes qui n’est pas irraisonnable.

Remarque

Pour en savoir plus sur le référencement des requêtes, accédez à Compréhension du volet des requêtes.

Créer des groupes

Pour que votre travail reste organisé, n’hésitez pas à utiliser des groupes dans le volet des requêtes.

Utilisation de groupes dans Power Query.

Le seul objectif des groupes est de vous aider à travailler de manière organisée en servant de dossiers pour vos requêtes. Vous pouvez créer des groupes dans des groupes, si besoin. Pour déplacer des requêtes d’un groupe à un autre, il suffit simplement d’effectuer un glisser-déplacer.

Essayez de donner à vos groupes un nom qui a du sens pour vous.

Remarque

Pour en savoir plus sur toutes les fonctionnalités et composants disponibles dans le volet des requêtes, accédez à Compréhension du volet des requêtes.

Pérenniser les requêtes

Une priorité absolue est de veiller à créer une requête qui n’aura aucun problème lors d’une actualisation future. Il existe plusieurs fonctionnalités dans Power Query pour rendre votre requête résiliente aux modifications et capable de s’actualiser même si certains composants de votre source de données changent.

Une bonne pratique consiste à définir l’étendue de votre requête en fonction de ce qu’elle doit faire et de ce qu’elle doit prendre en compte en termes de structure, de disposition, de noms de colonnes, de types de données et de tout autre composant qui vous semble cohérent pour l’étendue.

Voici quelques exemples de transformations qui peuvent vous aider à rendre votre requête résiliente aux modifications :

  • Si votre requête comporte un nombre dynamique de lignes avec des données, mais qu’un nombre fixe de lignes servant de pied de page ont besoin d’être supprimées, vous pouvez utiliser la fonctionnalité Supprimer les lignes du bas.

    Remarque

    Pour en savoir plus sur le filtrage de vos données par position de ligne, accédez à Filtrer une table par position de ligne.

  • Si votre requête comporte un nombre dynamique de colonnes, mais que vous avez uniquement besoin de sélectionner des colonnes spécifiques dans votre jeu de données, vous pouvez utiliser la fonctionnalité Sélectionner les colonnes.

    Remarque

    Pour en savoir plus sur le choix ou la suppression de colonnes, accédez à Choisir ou supprimer des colonnes.

  • Si votre requête comporte un nombre dynamique de colonnes et que vous avez besoin de supprimer uniquement le tableau croisé dynamique d’un sous-ensemble de vos colonnes, vous pouvez utiliser la fonctionnalité Supprimer uniquement les colonnes sélectionnées du tableau croisé dynamique.

    Remarque

    Pour en savoir plus sur les options de dépivotation de vos colonnes, accédez à Dépivoter les colonnes.

  • Si votre requête comporte une étape qui modifie le type de données d’une colonne, tandis que certaines cellules produisent des erreurs car les valeurs ne sont pas conformes au type de données souhaité, vous pouvez supprimer les lignes qui ont généré des valeurs d’erreur.

    Remarque

    Pour en savoir plus sur la façon de traiter et de gérer les erreurs, accédez à Gestion des erreurs.

Utiliser les paramètres

La création de requêtes dynamiques et flexibles est une bonne pratique. Les paramètres de Power Query vous aident à rendre vos requêtes plus dynamiques et flexibles. Un paramètre constitue un moyen de stocker et gérer facilement une valeur qui peut être réutilisée de nombreuses façons. Mais il s’avère plus utile dans deux scénarios :

  • Argument d’étape : Vous pouvez utiliser un paramètre comme argument de plusieurs transformations pilotées à partir de l’interface utilisateur.

    Sélectionner un paramètre pour un argument de transformation.

  • Argument de fonction personnalisée : Vous pouvez créer une fonction à partir d’une requête, puis référencer des paramètres en tant qu’arguments de votre fonction personnalisée.

    Créer une fonction.

Les principaux avantages de la création et de l’utilisation des paramètres sont les suivants :

  • Vue centralisée de tous vos paramètres par le biais de la fenêtre Gérer les paramètres.

    Fenêtre Gérer les paramètres.

  • Réutilisation possible du paramètre dans plusieurs étapes ou requêtes.

  • Création de fonctions personnalisées plus directe et plus simple.

Vous pouvez même utiliser des paramètres dans certains des arguments des connecteurs de données. Par exemple, vous pouvez créer un paramètre pour votre nom de serveur lors de la connexion à votre base de données SQL Server. Ensuite, vous pouvez utiliser ce paramètre dans la boîte de dialogue de la base de données SQL Server.

Boîte de dialogue d’une base de données SQL Server avec un paramètre pour le nom de serveur.

Si vous modifiez l’emplacement de votre serveur, il vous suffit de mettre à jour le paramètre défini pour votre nom de serveur et vos requêtes sont mises à jour.

Remarque

Pour en savoir plus sur la création et l’utilisation de paramètres, accédez à Utilisation des paramètres.

Créer des fonctions réutilisables

Si vous vous retrouvez dans une situation où vous avez besoin d’appliquer le même ensemble de transformations à différentes requêtes ou valeurs, la création d’une fonction personnalisée Power Query réutilisable autant de fois que nécessaire peut s’avérer bénéfique. Une fonction personnalisée Power Query est un mappage d’un ensemble de valeurs d’entrée à une valeur de sortie unique. Elle se crée à partir de fonctions et d’opérateurs M natifs.

Par exemple, supposons que vous avez plusieurs requêtes ou valeurs qui nécessitent le même ensemble de transformations. Vous pouvez créer une fonction personnalisée que vous allez appeler plus tard sur les requêtes ou valeurs de votre choix. Cette fonction personnalisée vous permet de gagner du temps et de mieux gérer votre ensemble de transformations dans un emplacement central, que vous pouvez modifier à tout moment.

Les fonctions personnalisées Power Query peuvent être créées à partir de requêtes et de paramètres existants. Par exemple, imaginez qu’une requête contient plusieurs codes sous forme de chaîne de texte et que vous voulez créer une fonction qui va décoder ces valeurs.

Liste de codes.

Vous commencez avec un paramètre qui a une valeur qui sert d’exemple.

Valeur de code de l’exemple de paramètre.

À partir de ce paramètre, vous créez une requête dans laquelle vous appliquez les transformations dont vous avez besoin. Dans cet exemple, vous voulez fractionner le code PTY-CM1090-LAX en plusieurs composants :

  • Origine = PTY
  • Destination = LAX
  • Compagnie aérienne = CM
  • ID du vol = 1090

Exemple de requête de transformation.

Vous pouvez ensuite transformer cette requête en fonction en cliquant avec le bouton droit sur la requête et en sélectionnant Créer une fonction. Enfin, vous pouvez appeler votre fonction personnalisée dans l’une de vos requêtes ou valeurs, comme illustré dans l’image suivante.

Appel d’une fonction personnalisée.

Après quelques transformations supplémentaires, vous pouvez voir que vous avez atteint la sortie escomptée et exploité la logique pour une telle transformation à partir d’une fonction personnalisée.

Requête de sortie finale après l’appel d’une fonction personnalisée.

Remarque

Pour en savoir plus sur la création et l’utilisation de fonctions personnalisées dans Power Query, consultez l’article Fonctions personnalisées.