Power Query: Créer des joints entre des tables

Publié le 11 septembre 2015
par Sophie Marchand M.Sc.
Full Outer

L’équipe de développement de Power Query rend disponibles de nouvelles version de cet add-in Excel, mensuellement. Dans une version récente, plusieurs options de jointures ont été ajoutées, rendant ainsi l’option de fusion de tables (merge queries) encore plus intéressante. Cet article vise à expliquer comment créer des joints entre des tables dans Power Query.

 

Tables de données

Pour illustrer les différentes options de jointures disponibles dans Power Query, nous allons utiliser deux tables, soit la table de ventes A et la table de ventes B, que vous pouvez apercevoir ci-bas.

Tables de vente

 

 

Pour comprendre comment fusionner deux tables ensemble dans Power Query, vous devriez d’abord lire l’article suivant: Power Query: Importer, transformer et fusionner des tables de données dans Excel.

 

1. Jointure de tables dans Power Query : Left Outer (all from first, matching from second)

 

De A vers B

Reprend tous les enregistrements de la première table, soit les produits A et les ventes A, et renvoie seulement les données correspondantes de la deuxième table, soit les ventes B.

créer des joints entre des tables dans Power Query

 

De B vers A

Reprend tous les enregistrements de la deuxième table, soit les produits B et les ventes B, et renvoie seulement les données correspondantes de la première table, soit les ventes A.

créer des joints entre des tables dans Power Query

 

2. Jointure de tables dans Power Query : Right Outer (all from second, matching from first)

 

De A vers B

Reprend tous les enregistrements de la deuxième table, soit les ventes B, et renvoie seulement les données correspondantes de la première table, soit les ventes A. Voyez toutefois que nous perdons les étiquettes de produits lorsque nous procédons ainsi. Une alternative, pour obtenir toutes les étiquettes de produits des ventes B, serait d’utiliser un LeftOuter de B vers A.

RightOuterAB

 

Une autre alternative serait d’ajouter la colonne de produits B lors de l’expansion de la table de ventes B et d’ensuite supprimer la première colonne.

RightOuterABFull

 

De B vers A

Reprend tous les enregistrements de la deuxième table, soit les ventes A, et renvoie seulement les données correspondantes de la première table, soit les ventes B.

RightOuterBA

 

Vous avez des sources de données volumineuses à rassembler et analyser dans Excel ? Apprenez à automatiser tout le processus d’importation, de transformation et de modélisation  des données avec nos formations sur Power Query et Power Pivot dans Excel.

 

3. Jointure de tables dans Power Query : Full Outer (All rows from both)

 

De A vers B

Reprend toutes les lignes des deux tables, mais les étiquettes de lignes ne sont que celles de la première table, soit la table de ventes A.

FullOuterAB

 

De B vers A

Reprend toutes les lignes des deux tables, mais les étiquettes de lignes ne sont que celles de la première table, soit la table de ventes B.

FullOuterBA

 

Manipulations supplémentaires

Afin de rendre un joint Full Outer plus intéressant, vous voudrez peut-être effectuer quelques étapes de transformation. D’abord, vous voudrez sans doute ajouter la colonne de produits de la table de ventes B, en plus de celle de la table de ventes A, en sélectionnant les produits dans le menu d’expansion.

Full Outer

 

Ensuite, vous voudrez sans doute ajouter une colonne personnalisée qui comprendra tous les noms de produits. Vous pourrez le faire à l’aide d’une fonction If, tel qu’illustré ci-bas.

FullOuter colonne personnalisée

 

Vous obtiendrez alors la table résultante suivante.

FullOuter ajout colonne

 

Et vous pourrez alors supprimer les colonnes ProduitsA et  ProduitsB, pour ne retenir que la colonne avec tous les noms de produits.

FullOuter

 

4. Jointure de tables dans Power Query : Inner (only matching rows)

 

De A vers B

Reprend les produits communs entre les deux tables, soit les produits A et B, et présente d’abord les ventes de A et ensuite les ventes de B.

InnerAB

 

De B vers A

Reprend les produits communs entre les deux tables, soit les produits A et B, et présente d’abord les ventes de B et ensuite les ventes de A.

InnerBA

 

 

5. Left Anti (rows only in first)

 

De A vers B

Reprend seulement les lignes de la première table qui ne correspondent pas à la deuxième table. On retrouve donc les ventes de la table A pour les produits qui n’existent pas dans la table de ventes B.

LeftAntiAB

 

De B vers A

Reprend seulement les lignes de la première table qui ne correspondent pas à la deuxième table. On retrouve donc les ventes de la table B pour les produits qui n’existent pas dans la table de ventes A.

LeftAntiBA

 

6. Jointure de tables dans Power Query : Right Anti (rows only in second)

 

De A vers B

Reprend seulement les lignes de la deuxième table qui ne correspondent pas à la première table. On retrouve donc les ventes de la table B pour les produits qui n’existent pas dans la table de ventes A. Par contre, pour obtenir le nom des produits, il faut les inclure dans le menu d’expansion. Et finalement, il serait sans doute préférable, à la toute fin, de supprimer les colonnes ProduitsA et VentesA.

RightAntiAB

 

De B vers A

Reprend seulement les lignes de la deuxième table qui ne correspondent pas à la première table. On retrouve donc les ventes de la table A pour les produits qui n’existent pas dans la table de ventes B. Par contre, pour obtenir le nom des produits, il faut les inclure dans le menu d’expansion. Et finalement, il serait sans doute préférable, à la toute fin, de supprimer les colonnes ProduitsB et VentesB.

RightAntiBA

 

À retenir

L’ordre dans lequel vous effectuez vos fusions importe. Avant d’aller de l’avant avec une fusion, posez-vous des questions sur vos sources de données et sur les résultats que vous désirez obtenir via cette fusion. De plus, remarquez qu’il existe plusieurs alternatives pour obtenir les mêmes résultats, comme c’est souvent le cas avec ce type d’outils. Assurez-vous de bien en saisir toutes les subtilités.

 


 

Fichier d’accompagnement

Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.

 

Formation complémentaire

Afin d’explorer les principales fonctions et fonctionnalités de Power Query, qui permet d’importer, de transformer et de fusionner des données de diverses sources et de pouvoir les analyser efficacement, suivez la formation Excel – Introduction à Power Query et au langage M.

 

Voici quelques commentaires d’apprenants ayant suivi cette formation :

Voici quelques commentaires d’apprenants ayant suivi la formation - Excel Introduction à Power Query et au langage M

CFO-Masque_Formations-en-ligne_FBLa mission du CFO masqué est de développer les compétences techniques des analystes et des contrôleurs de gestion en informatique décisionnelle avec Excel et Power BI et favoriser l’atteinte de leur plein potentiel, en stimulant leur autonomie, leur curiosité, leur raisonnement logique, leur esprit critique et leur créativité.

2 réflexions sur “Power Query: Créer des joints entre des tables”

  1. Salut, Jai suivi une formation du CFO masqué et j’ai très apprécié. J’essaie de le mettre en pratique.
    J’ai une difficulter à fusionner ma table. pourtant la jointure comporte les mêmes informations dans chaque requête mais le système ne trouve pas de réltats. Pouvez vous m’aider.

    Ma jointure est un numéro d’employé. pourtant le type est texte pour les deux requetes.
    j,ai aussi ajouté une formule pour que les numéro soit 5 digit, donc comblé par des 0 afin d’avoir la même chose dans les deux requetes

    1. Bonjour Manon,

      Ça va être difficile de vous aider sans avoir accès à votre fichier ou au minimum au message d’erreur que vous obtenez.

      Si vos données ne sont pas confidentielles, vous pourriez utiliser le forum pour partager avec nous le fichier. On pourrait ainsi comprendre rapidement ce qui se passe. Le lien vers le forum est ici : https://www.lecfomasque.com/forum/.

      Sinon, pouvez-vous partager le message d’erreur?

      Merci,

      Sophie

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut