Nettoyer une base de données avec une liste

Résolu/Fermé
TOT127 Messages postés 898 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 7 août 2018 - 9 juin 2016 à 20:22
TOT127 Messages postés 898 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 7 août 2018 - 11 juin 2016 à 22:32
Bonjour,
Je suis en train de simplifier une base de données, qui est de la forme suivante. Considérez que chaque ligne est le descrition d'un virement bancaire de financement électoral (données publiques). Chaque candidat peut avoir des dizaines de financements, donc ça donne des dizaines de lignes.

code éle; données; heure; contrat; canditat, transfert, lavaleur; financeur
133; ............................................ John; 77987; 800 $; Big entreprise
133; ............................................ John; 79619; $ 1900; énnorme entreprise
133; ............................................ Mark; 87681; 300 $; Petite entreprise
(Je mets ces variables inutiles, comme code élection, avant, comme dans le fichier)

J'ai donc 130.000 lignes comme ça, parce que la base de données est sur les candidats, élus ou non élus. Mais Mark n'a pas été élu ! Donc j'ai 90% de gens inutiles dans la base, et évidemment, le créateur de la base n'a pas pensé à mettre une variable "élu".

Or,
J'ai une autre base de données, avec 550 noms: ceux élus.

Y at-il un processus automatique, ou VBA (je suis si mauvais en VBA ....) pour nettoyer la liste?
Je voudrais supprimer toutes les lignes où CANDIDAT est un nom qui ne figure pas dans l'autre liste. Est-ce vous voyez ce que je veux dire?

Merci beaucoup pour votre aide,
A voir également:

1 réponse

via55 Messages postés 14445 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 juillet 2024 2 721
9 juin 2016 à 21:05
Bonjour

Un possibilité sans VBA
En supposant les candidats en colonne E et le listes des élus dans une Feuil2 en colonne A, rajouter dans la 1ere feuille une colonne dans laquelle en ligne 2 tu mets la formule =NB.SI(Feuil2!A:A;C2)
Etirer ensuite la formule au bas de ta feuille (double clic sur le carré noir en bas à droite de ta cellule
Cette formule de comptage devrait renvoyer 0 si le nom n'existe pas dans la liste d'élus et 1 autrement

Reste ensuite à filtrer le tableau sur cette colonne en décochant la valeur 0

Enfin copier le tableau filtré et le coller dans un autre feuille par collage spécial Valeurs uniquement

Cdlmnt
Via
6
TOT127 Messages postés 898 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 7 août 2018 96
Modifié par TOT127 le 10/06/2016 à 11:20
Bonjour ! merci de ta réponse. J'ai essayé mais il y a quelque chose que je dois faire de travers car cela ne fonctionne pas, avant j'avais une erreur (valeur) et maintenant la formule se copie sans rien faire. je vais retenter. les noms sont en colonne E en feuil1 et A en feuil2 en effet
1
TOT127 Messages postés 898 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 7 août 2018 96
10 juin 2016 à 11:43
là je sais pas pourquoi, ça a marché mais j'ai que des 0. Or, il devrait y avoir des 1 (j'ai vérifié à la main)
0