Salut.
Dans ce billet de blog, j'expliquais comment Power Query pouvait remplacer le filtre avancé en utilisant une colonne de la table comme "critère universel". Il suffit que la formule renvoie VRAI pour que l'actualisation du résultat de la requête ne reprenne que les lignes "VRAI".
Dans cette contribution, je vais illustrer comment on peut fusionner plusieurs tables dont une de critères, pour extraire certaines données de nos tableau Excel. J'illustre par ceci une des réponses possibles à cette discussion, les autres passant soit par les filtres avancés (outil qui a mal vieilli et que Power Query remplace admirablement bien), soit par de la programmation en VBA. Power query peut donc avantageusement remplacer le VBA et dispenser le "non-programmeur" de mettre les mains dans le cambouis.
Notez ici que je présente toutes les tables sur la même feuille à des fins didactiques, mais qu'idéalement, chaque tableau de données devrait être sur sa propre feuille. Seules les tables d'extraction et de résultat peuvent cohabiter sur la même feuille, selon moi. On pourrait bien entendu placer une liste de validation dans le tableau des critères, mais ce n'est pas l'objet de cette contribution.
La situation qui nous occupe est la suivante. On dispose d'une table des véhicules et d'une table des interventions à effectuer sur ceux-ci, et l'on souhaite obtenir une table reprenant les informations de ces deux sources en filtrant les véhicules. L'idée va être de créer une troisième table reprenant les plaques d'immatriculation et de s'en servir pour critériser notre extraction.
En se plaçant sur une des tables, on l'incorpore dans la solution Power Query via l'onglet Données
On remarque, en cliquant sur l'étape "Source", la ligne de commande Power Query qui intègre le tableau. Il suffit de copier la commande, puis, en une nouvelle requête vide, de copier la ligne de commande et de modifier le nom du tableau incorporé. On répètera l'opération pour le troisième tableau
Par clic droit, on pourra renommer les requêtes
Après cette première étape, on va fusionner les tables des véhicules et des interventions pour récupérer les colonnes des deux tables. En se plaçant sur la requête qui servira de tableau final, on appelle l'outil de fusion qui va permettre un "RechercheV" à la sauce Power Query, et via cet outil, on va lier les tables sur la colonne commune, à savoir celle des plaques d'immatriculation. Dans le bas de la fenêtre, on vérifie bien que la liaison (la "jointure") s'est effectuée par la gauche. Cela veut dire que cela reprendra toutes les lignes de la première table,et ça y joindra les colonnes de la seconde. Il est intéressant que, par rapport à un RECHERCHEV, il est possible d'effectuer la jointure sur plusieurs colonnes, et que ces colonnes pourraient être formulées en Power Query. On dispose donc ici d'un outil très puissant d'agrégation de données.
Cette étape aura pour effet d'amener la table des véhicules "dans" celle des interventions, et l'on pourra éclater la table pour en sélectionner uniquement les colonnes qui nous intéressent. Ici, on va décocher la colonne "Plaque" puisqu'elle se trouve déjà dans l'autre table.
On va répéter l'opération pour lier la table des critères, mais en faisant attention à prendre une jointure interne. C'est cette jointure interne qui servira de "filtre", en ne reprenant dans le résultat que les lignes des voitures dont les plaques sont renseignées dans la table des critères.
On pourra, à cette étape et par exemple par clic droit, supprimer la colonne de cette table. Elle ne nous sert plus à rien.
La suite se trouve dans le message suivant...
Partager