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
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
A voir également:
- Rechercher de données en masse sous Excel
- Rechercher ou entrer l'adresse - Guide
- Liste déroulante excel - Guide
- Renommer fichier en masse - Guide
- Mise en forme conditionnelle excel - Guide
- Formule excel - Guide
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
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.
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.
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
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
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
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
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"
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"
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
6 nov. 2009 à 08:54
Excusez moi de voue avoir dérangé.
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
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?
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?
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
6 nov. 2009 à 10:19
non puisque le demandeur est impoli
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.
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.
6 nov. 2009 à 03:42
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...
6 nov. 2009 à 08:52
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