J'ai deux feuilles de calcul dans deux fichiers Excel différents. Ils contiennent tous deux une liste de noms, des numéros d'identification et les données associées. L'une est une liste principale qui comprend des champs démographiques généraux et l'autre est une liste qui comprend uniquement le nom, l'id et une adresse. Cette liste a été réduite de la liste principale par un autre bureau.
Je veux utiliser la 2ème liste pour filtrer la première. De plus, je souhaite que les résultats incluent d'autres champs de la feuille de calcul principale à côté des champs d'adresse de la deuxième feuille de calcul. Je sais que je pourrais très facilement faire cela avec une jointure interne de base de données, mais je suis moins clair sur la manière de le faire efficacement dans Excel. Comment peut-on joindre deux feuilles de calcul dans Excel? Des points bonus pour montrer comment faire des jointures externes également, et je préférerais grandement savoir comment faire cela sans avoir besoin d'une macro.
la source
=INDEX ( Column_I_want_a_return_value_from , ( MATCH ( My_Lookup_Value , Column_I_want_to_Lookup_against , 0 ))
Réponses:
Pour 2007+ utilisation
Data
>From Other Sources
>From Microsoft Query
:Excel File
et sélectionnez votre 1er excel(si vous ne voyez aucune liste de colonnes, vérifiez
Options
>System Tables
)Data
>Connections
> [choisir la connexion vient de créer]>Properties
>Definition
>Command text
Vous pouvez maintenant éditer ceci en
Command text
tant que SQL. Je ne sais pas quelle syntaxe est suportée, mais j'ai essayé les jointures implicites, "jointure interne", "jointure gauche" et les unions qui fonctionnent toutes. Voici un exemple de requête:la source
Soutenez la réponse acceptée. Je veux juste insister sur "choisir des colonnes (si vous ne voyez aucune liste de colonnes, assurez-vous de cocher Options> Tables système)"
Une fois que vous avez sélectionné le fichier Excel, vous verrez probablement apparaître une
this data source contains no visible tables
invite, et les onglets et les colonnes disponibles sont nuls. Microsoft a admis qu'il était erroné que les onglets des fichiers Excel soient traités comme des "tables système" et que l'option "tables système" ne soit pas sélectionnée par défaut. Donc, ne paniquez pas à cette étape, il vous suffit de cliquer sur "option" et de cocher "Tables système", vous verrez alors les colonnes disponibles.la source
VLOOKUP et HLOOKUP peuvent être utilisés pour rechercher des clés primaires correspondantes (stockées verticalement ou horizontalement) et renvoyer des valeurs à partir de colonnes / lignes 'attribut'.
la source
Vous pouvez utiliser Microsoft Power Query, disponible pour les versions plus récentes d'Excel (similaire à la réponse acceptée, mais beaucoup plus simple et facile). Power Query appelle les jointures "fusionne".
Le plus simple est d’avoir vos 2 feuilles Excel sous forme de tableaux Excel. Ensuite, dans Excel, accédez à l'onglet du ruban Power Query, puis cliquez sur le bouton "À partir d'Excel". Une fois que vous avez importé les deux tables dans Power Query, sélectionnez-en une et cliquez sur "Fusionner".
la source
Bien que je pense que la réponse d’Aprillion à l’utilisation de Microsoft Query soit excellente, elle m’a inspiré pour utiliser Microsoft Access afin de rejoindre les feuilles de données, ce que j’ai trouvé beaucoup plus facile.
Bien entendu, vous devez avoir installé MS Access.
Pas:
Get External Data
pour importer vos données Excel comme nouvelles tables.Relationships
pour montrer comment vos tables sont jointes.External Data->Export to Excel
pour générer vos résultats.Je n'aurais vraiment pas pu le faire sans la bonne réponse de Aprillion.
la source
Vous ne pouvez pas préformer des jointures de style SQL sur des tableaux Excel à partir d'Excel. Cela dit, il existe de nombreuses façons d’accomplir ce que vous essayez de faire.
Dans Excel, comme le dit Reuben, les formules qui fonctionneront probablement le mieux sont
VLOOKUP
etHLOOKUP
. Dans les deux cas, vous faites correspondre une ligne unique et renvoie la valeur de la colonne \ rangée à gauche \ bas de l'id trouvé.Si vous souhaitez uniquement ajouter quelques champs supplémentaires à la deuxième liste, ajoutez les formules à la deuxième liste. Si vous souhaitez une table de style "jointure externe", ajoutez la
VLOOKUP
formule à la première liste avecISNA
pour vérifier si la recherche a été trouvée. Si l'aide de Excel ne vous fournit pas suffisamment de détails sur leur utilisation dans votre cas particulier, contactez-nous.Si vous préférez utiliser SQL, liez les données à votre programme de base de données, créez votre requête et exportez les résultats vers Excel. (Dans Access, vous pouvez importer des feuilles de calcul Excel ou des plages nommées sous forme de table liée.)
la source
Chez XLTools.net, nous avons créé une bonne alternative pour que MS Query fonctionne particulièrement avec les requêtes SQL par rapport aux tableaux Excel. Il s'appelle XLTools SQL Queries . Il est beaucoup plus facile à utiliser que MS Query et fonctionne vraiment bien si vous avez juste besoin de créer et d'exécuter SQL - pas de VBA, pas de manipulations complexes avec MS Query ...
Avec cet outil, vous pouvez créer n’importe quelle requête SQL avec des tables de classeurs Excel à l’aide de l’éditeur Embedded SQL et l’exécuter immédiatement avec l’option permettant de placer le résultat dans une nouvelle ou une feuille de calcul existante.
Vous pouvez utiliser presque tous les types de jointure, y compris LEFT OUTER JOIN (seuls RIGHT OUTER JOIN et FULL OUTER JOIN ne sont pas pris en charge).
Voici un exemple:
la source
Pour Excel 2007 User: Données> Autres sources> De Microsoft Query> accédez au fichier Excel
Selon cet article , une requête à partir de la version 2003 de XLS peut générer un message "Cette source de données ne contient aucune table visible". erreur car vos feuilles de calcul sont traitées comme une table SYSTEM. Vérifiez donc les "Tables système" dans les options de la boîte de dialogue "Assistant de requête - Choisir les colonnes" lors de la création de la requête.
Pour définir votre jointure: boîte de dialogue Microsoft Query> menu Tableau> Jointures ...
Pour renvoyer les données à votre feuille Excel d'origine, choisissez "Renvoyer les données à une feuille Excel" dans la boîte de dialogue Microsoft Query> menu Fichier.
la source
Si vous connaissez suffisamment les bases de données, vous pouvez utiliser SQL Server pour connecter les deux feuilles de calcul en tant que serveurs liés, puis utiliser T-SQL pour effectuer le travail relatif aux données back-end. Terminez ensuite en reliant Excel à SQL et extrayez les données dans une table (normale ou pivot). Vous pouvez également envisager d'utiliser Powerpivot; cela permettra des jointures entre toutes les sources de base de données, y compris Excel utilisé comme base de données plate.
la source
En cherchant le même problème, je suis tombé sur RDBMerge , qui, à mon avis, est un moyen convivial de fusionner des données de plusieurs classeurs Excel, csv et xml dans un classeur de synthèse.
la source