web-dev-qa-db-fra.com

Comment simuler une jointure externe complète dans Excel?

Supposons que j'ai des données dans Excel (et non dans une vraie base de données). Dans une feuille, j'ai des données, où une colonne sert d'identifiant, et je me suis assuré que les valeurs de cette colonne sont uniques. Dans une autre feuille, j'ai aussi des données, encore une fois avec une colonne qui peut être considérée comme un identifiant et qui est également unique. Si la ligne N de la feuille 1 a une certaine valeur et si la ligne M de la feuille 2 a la même valeur, je suis sûr que la ligne N et la ligne M décrivent le même objet du monde réel.

Ce que je demande: comment obtenir l'équivalent d'une jointure externe complète sans écrire de macros? Les formules et toutes les fonctions accessibles via le ruban sont acceptables.

Un petit exemple de "lecture de données":

Feuille 1:

Dostoyevski    Russia
Pushkin        Russia
Shelley        England
Flaubert       France
Hugo           France
Eichendorff    Germany
Byron          England
Zola           France

Feuille 2:

Shelley        Percy Bysshe
Eichendorff    Josef Freiherr Von
Flaubert       Gustave
Byron          Lord
Keller         Gottfried
Dostoyevski    Fyodor
Zola           Emile
Balzac         Honoré de

Sortie souhaitée (le tri n'est pas important):

Dostoyevski    Russia   Fyodor
Pushkin        Russia
Shelley        England  Percy Bysshe
Flaubert       France   Gustave
Hugo           France
Eichendorff    Germany  Josef Freiherr von
Byron          England  Lord
Zola           France   Emile
Keller                  Gottfried
Balzac                  Honoré de

À tous ceux qui sont horrifiés par ce scénario: Je sais que c’est la mauvaise façon de le faire. Si j’ai le choix, j’utiliserais pas pour cela. Cependant, il existe suffisamment de situations où une solution pragmatique est nécessaire, stat et une solution meilleure (du point de vue informatique) ne peuvent pas être appliquées.

30
rumtscho

Comme solution alternative, puis-je suggérer Power Query ? C'est un complément gratuit de Microsoft destiné à Excel qui permet de réaliser exactement ce genre de chose. En réalité, ses fonctionnalités seront directement incluses dans Excel 2016 également, ce qui en garantit la pérennité.

Quoi qu'il en soit, avec Power Query, les étapes sont assez simples:

  1. Importez les deux tables en tant que requêtes dans l'éditeur de requête de puissance.
  2. Effectuez une transformation de fusion des requêtes sur ces dernières en définissant la colonne de jointure appropriée et en définissant le type de jointure sur Plein externe.
  3. Chargez votre tableau de résultats dans une nouvelle feuille.

La bonne chose à ce sujet est que, une fois que vous avez défini cette configuration, si vous apportez des modifications à vos tables de données de base, appuyez simplement sur Données> Actualiser tout et la feuille de résultats de votre requête Power Query sera également mise à jour.

13
Kyle Hale