Rechercher de données en masse sous Excel

Résolu/Fermé
didicode Messages postés 5 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 5 novembre 2009 - 5 nov. 2009 à 12:38
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 7 nov. 2009 à 18:35
Bonjour,

Je m'explique :
- J'ai un fichier Excel, avec une seule colonne A, et 1400 lignes (qui sont des adresses postales d'un échantillon de clients).
- J'ai un 2ème fichier Excel, avec 10 colonnes, NOM, ADRESSE, TEL, ...etc... Ce fichier comporte 54000 lignes clients. C'est ma base client.

Je souhaite :
A partir de mes 1400 adresses, retrouver le reste des coordonnées de mes clients, qui se trouvent dans le fichier de ma base client.

Manuellement, lorsque j'effectue une simple recherche, je trouve la correspondance...Mais, je me vois mal faire cela 1400 fois! je cherche donc une solution pour automatiser cette recherche et pouvoir identifier à qui appartiennent ces 1400 adresses.


Espérant avoir été clair...Merci d'avance.
Didier.
A voir également:

5 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
5 nov. 2009 à 12:50
Bonjour,
La formule RECHERCHEV() vous conviendrait.
description : RECHERCHEV(quoi?;ou?;nombre de colonnes à droite dans la bdd; valeur exacte ou non)
Pour vous donc le problème sera le NOM qui se trouve dans la colonne de gauche de l'adresse. Pour cela très facile, vous créez une colonne en fin de bdd clients (11ème colonne) que vous nommez NOM2 (par exemple).
Ensuite, dans votre fichier à 1400 lignes, supposons qu'elles commencent en A2 ces lignes :
en B2 : (on va rechercher le nom se trouvant en 11ème colonne fichier "clients.xls") :
=RECHERCHEV(A2;'[clients.xls]Feuil1'!$A$2:$J$60000;11;FAUX)
en C2 :
=RECHERCHEV(A2;'[clients.xls]Feuil1'!$A$2:$J$60000;2;FAUX)
etc pour D2, E2... J2
et ensuite vous "étirez" vos formules vers le bas.

L'idéal serait d'avoir une copie de votre base de données clients en Feuil2 de votre fichier comportant 1400 lignes.
1
Tout d'abord merci pour votre aide,

J'ai essayé et je ne trouve pas d'où vient l'erreur :
tous les résultats de la RECHERCHEV donnent : #N/A. Le problème viendrait que la cellule de recherche (le "quoi?") contient une constante (qui doit être le texte de l'adresse de mon client).

Le fait que mes recherches soient faites sur des cellules comportant du texte pose problème..???

J'ai également regroupé la bdd (feuil1) et le fichier des 1400 adresses (feuil2) dans le même classeur...

Je ne vois pas...
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745 > didicode
6 nov. 2009 à 08:52
Bonjour,
Désolé de n'avoir pas répondu plus vite mais je dormais.... #N/A signifie qu'Excel ne trouve pas les données recherchées...
La formule RECHERCHEV() est assez capricieuse. Il faut être rigoureusement précis. Supposons votre adresse1 en A2. Cliquez sur B2 puis Insertion/fonction. Tapez RECHERCHEV dans la recherche et cliquez dessus pour l'insérer. Ici l'assistant va vous guider pour remplir les arguments de cette fonction.
Je vous joind un exemple précis qui sera plus parlant peut être. Cliquez ici
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
7 nov. 2009 à 18:35
Bonsoir tous
on peut peut être essayer autre chose, car à la lecture du premier message, il me semble que la colonne de recherche n'est pas la première du champ, ce qui ne convient pas à RECHERCHEV

Sauf bien entendu si on applique la manip conseillée par Pikaju au message N°1
mais avec toutefois une petite nuance, selon son conseil, qui reste très valable, il faut que le champ de recherche commence en B et pas en A , ou alors il faut supprimer la colonne A après son transfert en 11° colonne et là, il n'en reste que 10



Il serait donc à priori plus judicieux, sauf erreur, d'utiliser dans la feuille résultat:
=INDEX('[clients.xls]Feuil1'!$A$2:$J$60000;EQUIV(A2;clients.xls]Feuil1'!$B$2:$B$60000;0);1)
pour trouver ce qu'il y a en A
;3) """ enB
;4) en C etc.
Ensuite:
Selon le message 3, les données sont dans le même classeur maintenant, et donc on ne peut que recommander au demandeur de nommer ses données de recherche, la formule ci dessus donnant des résultats dans tous les cas:
par exemple:
champ de A2 à J60000: CHAMP
colonne des adresses de B2 à B60000: RECH
Attention, les champs ont tous les mêmes N° de ligne
la formule devient alors:
=INDEX(CHAMP;EQUI(A2;RECH;0);1) le dernier n° donnant l'ordre dans le champ de la colonne à éditer

Il reste quand pour finir même un gros souci à mon avis: chercher ainsi des info à partir d'une adresse suppose que les libellés soient strictement identique dans les deux tableaux, à la virgule et au blanc près.
Est ce réellement le cas.
Bon WE Crdlmnt


1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
5 nov. 2009 à 13:59
Bonjour,

Compte-tenu des 2 masses, on pourrait le faire sans ouvrir les 2 fichiers les 14000 individus étant retrouvésr sur 3° classeur. l'idée étant de faire en ADO une jointure avec une requ^te SQL
Pour cela, il faudrait des renseignements précis:
fichier "54000"
nom du classeur et nom de l'onglet ou sont inscrits les personnes
en première ligne as tu une ent^te de champ et si oui orthographe exacte pour le champ adresse ( j'espère en 1 seule colonne sinon j'écris pour rien)

m^mes questions pour le fichier 1400

Il serait intéressant que ces 2 fichiers soient dans le m^me dossier.
Au besoin met un extrait ( 10 20 lignes) sans données confidentielles sur
https://www.cjoint.com/ et copies-colles le lien proposé dans ton message


mais Tu as un intérêt urgent à passer ta base de 54000 sur Access et de faire dès maintenant une copie de sauvegarde de cette base si tu ne l'as pas déjà fait ( Microsoft conseille de ne pas dépasser 12000 enregistrements 'base de données" avec XL2007) car tu risque d'avoir 1 de 4 le message : "accès impossible, fichier corrompu"
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
6 nov. 2009 à 08:54
Excusez moi de voue avoir dérangé.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
6 nov. 2009 à 09:01
Salut Michel,
Tu ne déranges absolument pas. Je tente cette dernière approche (car elle me semble plus accessible par l'auteur du sujet) par "RECHERCHEV()" et si cela ne fonctionne (ou ne convient) pas, il nous faudra absolument son fichier pour mettre en place une procédure différente. Et là nous aurons grandement besoin de tes conseils éclairés. Surtout en ce qui concerne les requêtes ADO de recherche de données dans un fichier fermé.
Tu vois, tu ne déranges pas, j'en veux pour preuve qu'hier je n'avait jamais entendu parler de requêtes SQL ni de ADO et qu'après renseignements je m'y intéresse. Encore grâce à toi...
Pouvons nous compter sur toi, le cas échéant?
0

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

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
6 nov. 2009 à 10:19
non puisque le demandeur est impoli
0
Je vois pas trop où le demandeur fut impoli...

En effet, la Recherche verticale est bien plus accessible pour moi et ta proposition ne m'a pas aider car trop complexe, tout simplement. Ne te vexe pas, sûrement que tes compétences très pointues à priori, seront appréciées par d'autres.

et pour finir, en effet, la fonction RECHERCHEV est très très capricieuse...J'ai résolu mon problème gràce à tes précision Pijaku.

Je confirme donc que la solution est bien la recherche verticale et qu'il faut procéder étape par étape.
Important : les données des colonnes de la Base De Données doivent être classées croissantes! Même pour du texte.

Merci pour tout.
0