Comment simuler une jointure externe complète dans Excel ?
Source : Super User [microsoft-excel]
Approche simple — opérations Excel standard
D’abord, copiez/collez les deux colonnes de clés des deux tables dans une seule nouvelle feuille en tant que colonne unique.
Utilisez la fonction « Supprimer les doublons » pour obtenir la liste unique de toutes vos clés uniques.
Ensuite, ajoutez deux colonnes (dans ce cas), une pour chacune de vos colonnes de données dans chaque table. Je vous recommande d’utiliser également l’option « Mettre sous forme de tableau » car cela rend vos formules beaucoup plus lisibles. En utilisant RECHERCHEV, utilisez la formule suivante :
=IFERROR(VLOOKUP([@ID],Sheet4!A:B,2,FALSE),"")
Où Sheet4!A:B représente la table de données source correspondante pour chaque valeur respective. IFERROR empêche les résultats #N/A disgracieux qui apparaissent lorsque RECHERCHEV échoue et renvoie dans ce cas une cellule vide.
Cela vous donne votre table résultante.
Sheet3 :
Sheet4 :
Données résultantes :
Formules résultantes (Ctrl+~ basculera cet affichage) :
Requête SQL intégrée
Vous pouvez également faire cela avec la requête SQL intégrée. C’est… beaucoup moins convivial, mais cela pourrait être un meilleur cas d’usage. Cela nécessitera probablement que vous ayez formaté vos données « source » sous forme de tableaux.
Cliquez sur une cellule dans une nouvelle feuille
Allez dans Données → À partir d’autres sources → À partir de Microsoft Query
Sélectionnez Excel Files* sous l’onglet Bases de données et cliquez sur OK
Sélectionnez votre classeur
Sélectionnez les quatre champs suivants :
Cliquez sur « suivant » et « OK » sur le joli avertissement au format années 90 que vous voyez
En suivant ces instructions, créez la première jointure externe gauche. Dans mon cas, j’utilise la table « countries » comme source gauche et « names » comme source droite.
Cela ne donne que certaines des lignes (puisque vous joignez sur l’ID)
La partie « créer une jointure de soustraction puis l’ajouter comme union » est plus compliquée…
(Réponse tronquée)