Trier une base de données via une autre base de données

Fermé
laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015 - 13 avril 2015 à 09:24
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 13 avril 2015 à 18:26
Bonjour,

J'ai un petit problème sur Excel et si il existe une solution cela pourrait me changer la vie...

En gros j'ai 2 fichiers. Un nouveau fichier contenant des numéros d'identité avec 2 autres colonnes d'infos. Un autre fichier "base" qui contient pleins d'infos via ces numéros d'identité.

Sauf que j'ai moins de numéro d'identité dans le fichier que dans le fichier "base". Du coup, est ce qu'il est possible de trier dans les fichiers de "base" que les numéros d'identité que contient mon nouveau fichier?

Merci d'avance

PS: Pour vous donner une idée je dois garder 600 lignes sur 3 000... autant dire qu'un tri à la main sera très laborieux...

5 réponses

PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
13 avril 2015 à 10:01
Bonjour

Pour construire votre nouvelle liste en partant des numéro d'identité
Sur le nouveau classeur, en colonne A les identités et en colonne B
cette formule

=INDIRECT(ADRESSE(SIERREUR(EQUIV($A$4;'[BASE DE REFERENCE.xlsx]Feuil1'!$A$1:$A$50;0);"n'est pas présent dans la base");2;3;1;"[BASE DE REFERENCE.xlsx]Feuil1");1)

En colonne C celle-ci

=INDIRECT(ADRESSE(SIERREUR(EQUIV($A$4;'[BASE DE REFERENCE.xlsx]Feuil1'!$A$1:$A$50;0);"n'est pas présent dans la base");3;3;1;"[BASE DE REFERENCE.xlsx]Feuil1");1)

Le chiffre en gras est le numéro de colonne ou se trouve l'information dans l' ancienne base. La base a pour première colonne A dans mon exemple
Ma réponse correspond au cas ou la base est dans un classeur différent de la nouvelle base
1
laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015
13 avril 2015 à 10:18
Bonjour,

Merci de ta réponse mais elle ne fonctionne pas...
J'ai entrée la formule suivante:
=INDIRECT(ADRESSE(SIERREUR(EQUIV($A$2;([Index_Taureaux.xls]EVOLUTION_Taureaux_56);$A$2:$A$3851;"n'est pas présent dans la base");6;3;1;"[Index_Taureaux.xls]EVOLUTION_Taureaux_56");1)

Et cela me dit que j'ai tapé un nombre trop important d'argument pour cette fonction...
0
laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015
13 avril 2015 à 10:40
J'avais oublié quelque chose...
Donc j'ai fait cette formule:
=INDIRECT(ADRESSE(SIERREUR(EQUIV($A$2;'[Index_Taureaux.xls]EVOLUTION_Taureaux_56]'!$A$2:$A$3851;"n'est pas présent dans la base");6;3;1;"[Index_Taureaux.xls]EVOLUTION_Taureaux_56");1))

Mais j'ai a nouveau un message d'erreur qui me dit cette fois qu'il y a une erreur de saisis concernant la phase souligné....

Des pistes?
0
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796 > laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015
13 avril 2015 à 14:00
La formule
=INDIRECT(ADRESSE(SIERREUR(EQUIV($A4;[INDEX_TAUREAUX.xls]EVOLUTION_TAUREAU_56!$A$1:$A$3851;0);"n'est pas présent dans la base");2;3;1;"[INDEX_TAUREAUX.xls]EVOLUTION_TAUREAU_56");1)
0
laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015
Modifié par laurilo56 le 13/04/2015 à 14:38
Ca ne me met pas les bons....

J'ai bien un résultat mais il ne correspond pas à celui du fichier de base...
Normalement pour ARCENCIEL (qui est en A2 de mon fichier) sa colonne 3 doit être de 2005 et ça me le met en 1985....

J'ai pourtant un peu modifié la formule mais pas au point d'avoir ce genre de résultat...

=INDIRECT(ADRESSE(SIERREUR(EQUIV($A2;[Index_Taureaux.xls]EVOLUTION_Taureaux_56!$A$2:$A$3851;0);"n'est pas présent dans la base");3;3;1;"[Index_Taureaux.xls]EVOLUTION_Taureaux_56");1)
0
laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015 > laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015
Modifié par laurilo56 le 13/04/2015 à 15:02
J'ai changé un petit truc et j'ai l'impression que ça a marché....
Je vous redis....

Ca fonctionne bien!!!
Merci beaucoup, vous m'avez sauvé la vie!!!!
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 avril 2015 à 09:41
Bonjour,

Si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, avec les résultats souhaités expliqués clairement, se serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu.
0
laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015
13 avril 2015 à 09:51
https://www.cjoint.com/c/EDnkdwKxf2l

Vous allez voir sur la feuille1 les numéros que je souhaite sélectionner dans la feuille2.
Du coup ça veut dire que tout les numéros de la feuille2 qui se trouve entre les 2 autres numéros seront supprimés.

Est-ce plus clair? :)
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 avril 2015 à 10:56
Bonjour,

Pas tellement plus clair car lorsque tu dis "est ce qu'il est possible de trier dans les fichiers de "base" " j'ai l'impression que tu ne veux pas trier mais filtrer, non ?
tout les numéros de la feuille2 qui se trouve entre les 2 autres numéros seront supprimés ne veux-tu pas plutôt les masquer ?

Donc avec ce que j'ai compris, je t'ai mis en feuille 3 les lignes de la feuille 2 dont l'identifiant figure en colonne 1 de la feuille 1

https://www.cjoint.com/c/EDnlhAyODcT
Il faut activer les macros pour que cela fonctionne.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 13/04/2015 à 11:10
Bonjour
il faut parcourir toute la feuille 1 ? les 2 jaunes etant pour l'exemple ?
0
laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
13 avril 2015 à 11:16
Oui c'est cela meme.
Mais ce n'est qu'un échantillon de ma vrai base qui contient normalement dans la feuille1 655 lignes et dans ma feuille2 3851 lignes!
0
laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015
13 avril 2015 à 11:09
Malgrès que je m'exprime mal tu as réussi à comprendre mon problème et à trouver une solution!

Peut tu me dire comment tu as fait? Je n'ai que les bases en Excel donc un protocole détaillé serait bienvenue...

Merci beaucoup
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684 > laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015
13 avril 2015 à 18:26
Bonsoir,

La macro est dans le module que tu peux voir avec Alt+F11 et tu peux la copier dans ton vrai fichier qui doit être mis en .xlsm. Il suffit de changer le nom des feuilles "Feuil1", "Feuil2","Feuil3" par le nom de tes feuilles réelles puis de la lancer en faisant "Exécuter".
0
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
13 avril 2015 à 10:10
Bonjour

Pour construire votre nouvelle liste en partant des numéro d'identité
Sur le nouveau classeur, en colonne A les identités et en colonne B
cette formule

=INDIRECT(ADRESSE(SIERREUR(EQUIV($A4;Feuil1!A1:A50;0);"n'est pas présent dans la base");2;3;1;"Feuil1");1)
En colonne C celle-ci

=INDIRECT(ADRESSE(SIERREUR(EQUIV($A4;Feuil1!A1:A50;0);"n'est pas présent dans la base");3;3;1;"Feuil1");1)

Le chiffre en gras est le numéro de colonne ou se trouve l'information dans l' ancienne base. La base a pour première colonne A dans mon exemple
Ma réponse correspond au cas ou la base est dans le même classeur que la nouvelle base
0
laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015
Modifié par laurilo56 le 13/04/2015 à 10:29
quels arguments prends en compte la base de référence?
Que représente ($A4;Feuil1!A1:A50;0)?
Et ;3;3;1;"Feuil1"?
La base de référence est dans un autre fichier que ma nouvelle base.
0
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796 > laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015
13 avril 2015 à 14:43
Equiv(A4;Feuil1!A1:A50;0)
On recherche A4 dans la colonne des identifiants de la base et on obtient la ligne on il se trouve
ce qui permet de construire l'adresse
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
laurilo56 Messages postés 10 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 13 avril 2015
13 avril 2015 à 13:52
UP! :)

C'est un peu urgent...
0