XL 2010 extraction de données après contrôles multicritères d'une BD excel

voldemar

XLDnaute Nouveau
Bonsoir à toutes et à tous
je viens de passer un peu de temps, et sans succès, a essayer d'extraire d'une base de données de 130000 lignes et une vingtaine de colonnes des données que j'ai par ailleurs dans une autre base données excel.

je m'explique pour que vous puissiez, soyez en remercié(e)s par avance,m'aider a trouver la bonne formule pour faire mes sélections. Recherche V et Sommeprod ne me permettent pas d'arriver au résultat.

J'ai un fichier excel d'environ 5000 lignes, qui est une extraction d'un logiciel de facturation, avec en colonnes le nom du client, son adresse, code postal, ville,code client ...c'est mon fichier interne.
J'ai un deuxième fichier, celui de 130000 lignes, qui lui aussi présente les mêmes données (mais sur une base nationale fournie par les services administratifs de l'état).

je dois comparer et identifier mes clients avec leurs coordonnées et code client interne avec la base de donnée externe. Les noms peuvent être identiques entre les deux bases, et cependant il ne s'agit pas de la même entité. Je dois donc utiliser plusieurs critères pour identifier avec certitude la correspondance exacte. Un exemple sera sans doute plus clair:
le lycée Pasteur existe dans de nombreuses villes, le hasard pourrait faire qu'il soient tous sur l'avenue X, mais il est impossible qu'ils soient deux dans la même ville.

Ce que je dois trier porte sur des institutions publiques, qui portent donc très souvent le même nom, mais ont des adresses différentes et sont dans des départements ou des villes différentes. Je dois donc trier sur plusieurs critères Ville ET code postal ET adresse, par exemple.

Quelle fonction puis-je utiliser pour que le multicritère (3 ou 4 devraient être nécessaires) pour que je puisse récupérer la concordance entre mes données ? Sommeprod coince sur le fait que je ne calcule rien et rechercheV , à ma connaissance, ne permet pas le multi-critères.

Je n'ai pas, à cette heure tardive, de fichier à joindre pour vous faciliter la compréhension du problème, mais je peux résoudre ce petit détail demain matin si l'une ou l'une d'entre vous peut m'aider à résoudre ce problème.

Par avance merci, toute réflexion ou question peut m'aider à avancer, je m'y prend sans doute mal et j'ai peu de temps pour résoudre mon problème.

Cordialement
Voldemar
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
130000 lignes ça fait beaucoup, c'est sûr. L'initialisation d'un UserForm utilisant mon objet ComboBoxLiées pourrait prendre de nombreuses secondes. Mais ensuite la restitution d'infos selon les choix effectués est instantanée, parce qu'aucune recherche n'est effectuée pour cela, vu qu'on a pour chaque valeur possible de chaque ComboBox la liste des numéros dans la base de toutes les lignes qui portent cette valeur.
 

voldemar

XLDnaute Nouveau
Bonjour
merci de vous intéresser au sujet.

Pour que ce soit plus compréhensible voici un fichier que j'ai apuré pour l'exemple.
l'onglet interne correspond à mes données
l'onglet externe correspond aux données qui me sont fournies et dans lesquelles je dois retrouver mes "clients".

Objectif coller le code client de l'onglet interne dans l'onglet externe en face du bon client :)

j'ai réduit les deux bases, l'interne à 50 lignes (au lieu de 5000) et l'externe à 6000(au lieu de 13000).

Une petite idée du mode de traitement possible ?

Merci de votre aide.
Jean Michel
 

Pièces jointes

  • test voldemar.xlsx
    519.3 KB · Affichages: 180

voldemar

XLDnaute Nouveau
Bonjour
oui en effet, une fois l'identification faite, je pourrai traiter le reste des données plus facilement, mon problème c'est le tri dans 130000 sur multicritères alpha numérique.

Une idée ?
quoi qu'il en soit merci
Cordialement
Jean Michel
 

Dranreb

XLDnaute Barbatruc
si c'est à n'effectuer qu'une fois, je mettrais les colonnes communes dans le même ordre dans les 2 tables, je copierais et collerais la plus petite derrière la grande, ajouterais une colonne avec 1 ou 2 pour garder trace de la source, classerais le tout sur les colonnes communes, puis mettrais des formules pour vérifier si l'ensemble des colonnes communes sont pareilles qu'à la ligne précédente, et si oui je reprendrais le numéro de client de la ligne précédente. copier/coller par valeurs puis reclasser par source pour rééclater.
 

Discussions similaires