IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Pierre Fauconnier

Power Query: Fusion multi-colonnes

Noter ce billet
par , 01/12/2020 à 10h22 (4122 Affichages)
Salut.

Rappel (?): Fusionner deux tables revient appairer les lignes des deux tables sur une clé commune, soit dans une des tables, soit dans une troisième. Appairer signifie que l'on assemble les lignes des deux tables en fonction d'une valeur commune aux deux lignes. Cette valeur peut être simple ou composite (monocolonne ou multicolonnes).


Dans Excel, on utiliserait RECHERCHEX (XL365), INDEX-EQUIV, voire RECHERCHEV si la conception du classeur s'y prête. Power Query est très efficace pour fusionner deux requêtes sur une clé commune, et rapide à mettre en place lorsque la clé commune aux deux tables est constituée d'une seule colonne. Mais nous allons voir que Power Query permet, évidemment, de fusionner deux tables sur base de plusieurs colonnes.

Soit à fusionner les tables suivantes: t_Articles et t_Ventes sur base du nom de l'article.

Nom : 2020-12-01_095628.png
Affichages : 1561
Taille : 20,8 Ko

Après avoir importé les tables dans Power Query, Accueil > Combiner > Fusionner les requêtes permet de joindre les tables sur base de la colonne de la clé commune. Dans la fenêtre de dialogue, il suffit de choisir les deux tables à joindre et de sélectionne la colonne de chaque table qui contient la clé, puis de choisir un type de jointures (J'illustre les 7 jointures possibles dans ce billet) et de valider. Dans la requête résultante, on peut développer la table de droite (la seconde mentionnée lors de la jointure) pour en récupérer certaines colonnes.

Nom : 2020-12-01_100235.png
Affichages : 1541
Taille : 13,7 Ko

Nom : 2020-12-01_100630.png
Affichages : 1484
Taille : 6,8 Ko


Lorsque la clé est constituée de plusieurs colonnes, Excel requiert une certaine maîtrise. Si RECHERCHEX est plus ou moins intuitif et que INDEX-EQUIV permet depuis longtemps de réaliser cela en validation matricielle, RECHERCHEV est largué et nécessite une modification structurelle du classeur. Or, force est de constater que INDEX-EQUIV n'a jamais vraiment perçé et que RECHERCHEX, pourtant attendue depuis longtemps, n'est pas utilisée par grand monde (problème de compatibilité de version, ...).

Power Query va se révéler à peine plus complexe que lorsque la clé est mono-colonnes. Complétons nos articles par une mention de la couleur, et tout peut sembler de suite plus délicat à mettre en place... Et pourtant, fusionner avec plusieurs colonnes va se révéler à peine plus complexe que lorsque la clé est sur une seule colonne.

Nom : 2020-12-01_101052.png
Affichages : 1491
Taille : 17,8 Ko

Après avoir importé les deux tables dans Power Query, il suffira de sélectionner les colonnes de chaque requête dans le même ordre(1). Pas besoin donc de réorganiser les colonnes ou de les renommer, de créer une colonne assemblant les valeurs de la clé. L'interface Power Query est prévu pour vous simplifier la vie et vous permet, par quelques clics, de joindre vos données sur base de la clé composée. On voit ci-dessous que les colonnes sont numérotées pour chaque requête, et que leur ordre dans la table de base n'a pas d'importance(2).

Nom : 2020-12-01_101304.png
Affichages : 1525
Taille : 29,3 Ko

Nom : 2020-12-01_101543.png
Affichages : 1490
Taille : 21,7 Ko




(1) Pour sélectionner plusieurs colonnes lors de la création de la jointure, vous utiliserez bien sûr les techniques Windows (Shift+Clic: de ... à; Ctrl+Clic: chaque colonne cliquée)

(2) Il n'est donc pas nécessaire de réorganiser les colonnes, mais seulement de les sélectionner dans le même ordre lors de fusion.

Envoyer le billet « Power Query: Fusion multi-colonnes » dans le blog Viadeo Envoyer le billet « Power Query: Fusion multi-colonnes » dans le blog Twitter Envoyer le billet « Power Query: Fusion multi-colonnes » dans le blog Google Envoyer le billet « Power Query: Fusion multi-colonnes » dans le blog Facebook Envoyer le billet « Power Query: Fusion multi-colonnes » dans le blog Digg Envoyer le billet « Power Query: Fusion multi-colonnes » dans le blog Delicious Envoyer le billet « Power Query: Fusion multi-colonnes » dans le blog MySpace Envoyer le billet « Power Query: Fusion multi-colonnes » dans le blog Yahoo

Commentaires