Comment supprimer des valeur en double sur une même ligen

Résolu/Fermé
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014 - 28 juin 2014 à 15:21
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014 - 7 juil. 2014 à 10:33
Bonjour,

J'ai 2 fichier excel avec identifiant et des codes sur 6 caractères.

Il y a des données qui sont en doubles ou manquant dans l'une ou l'autre fichier afin de faire des mises à jour.

Avez-vous une formule magique pour moi?

Merci.

Exemple :

Fichier 1 :
id code1 code2 code3
abc001 040506 124569 236898
abc002 060708 254856 232347
abc003 060912 125698 367456
abc004 010523 212478 851269
abc005 010210 236585 367852
abc006 150120 125698 021458
abc007 120230 125896 0
abc008 150385 129745 0
abc009 850706 235669 0
abc010 980512 120845 0
abc011 451265 236801 361205
abc012 459878 236895 326987


Fichier2 :

id code1 code2 code3
abc001 124570 021458 040506
abc002 124571 0 060708
abc003 124572 0 060912
abc004 212479 0 010523
abc005 124574 0 010210
abc006 125699 126989 235698
abc007 124576 326987 025698
abc008 124577 125698 150385
abc009 235670 0 850706
abc010 124579 0 980512
abc011 236802 125878 451265
abc012 124581 236987 459878
A voir également:

27 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
28 juin 2014 à 17:11
Bonjour

Q1. Et tu veux obtenir quoi?
Q2. Ordre de grandeur du nombre de lignes à traiter
Q3. Les données sont elles sur 2 feuilles d'un même fichier ou sur deux fichiers

Cdlmnt
0
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014
29 juin 2014 à 11:13
Bonjour,

1) Je veux obtenir les codes présents dans le fichier 1 et absent dans le fichier 2 (et inversement les codes présent dans le 2éme fichier et absents du 1er si possible)
.
2) Le 1er fichier 95 000 lignes sur 12 colonnes et le 2éme fichier 87 000 lignes également sur 12 colonnes.

3) Les donnés sont sur 2 fichiers excel mais je peux également les avoir sur 2 feuilles d'un fichier.

Au final je veux faire un état des lieux et faire des mises à jour en complétant les données manquant dans l'un ou l'autre fichier.

Merci.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 29/06/2014 à 13:44
Je reviens sur Q1.

Q1. Dans ton exemple à l'identifiant abc001 il y a
- trois codes en feuille1
- trois codes en feuille 2
Ces 6 codes sont différents
Et c'est la même chose pour les autres identifiants
Que doit on faire avec ça?
Au final je veux faire un état des lieux et faire des mises à jour en complétant les données manquant dans l'un ou l'autre fichier.
veux tu une liste avec abc001 et les 6 codes?

Q2. Je veux obtenir les codes présents dans le fichier 1 et absent dans le fichier 2 (et inversement les codes présent dans le 2éme fichier et absents du 1er si possible)
Est ce indispensable (vu la taille) ou on se contente d'une compil adéquate (au sens de ta réponse à Q1) des deux fichiers

Peux tu envoyer sur cjoint.com une partie significative de ton fichier (tu mets quelques dizaines de lignes de chaque fichier dans deux feuilles différentes, ce sera plus simple) au format excel 2003 et joindre le lien obtenu à ton prochain message
0
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014
30 juin 2014 à 21:37
Bonjour,

Ci-joint le lien https://www.cjoint.com/?3FEvCRkcgym

Je veux faire un état des lieux et faire des mises à jour en complétant les données manquant dans l'un ou l'autre fichier.

L'idéale c'est d'avoir :
- une liste avec les données présent dans le fichier 1 et absent du fichier 2
- une liste avec les données présent dans le fichier 2 et absent dans le fichier 1

Ah oui, il peut y avoir deux codes identiques pour un même ID.

Si tu arrive à me trouver une formule ça serait super! J'ai essayé avec la Recherche V, ça marche pas.

Merci.
0
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014
30 juin 2014 à 21:41
PS : il faut supprimer le point à la fin du lien afin d'accéder au doc.
0

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

Posez votre question
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
1 juil. 2014 à 11:58
Il va falloir passer par des macros,
et vu la taille des fichiers, il faudra optimiser, il me faut quelques précisions
Q1. Est ce que tous les ID sont présents dans les deux feuilles
Q2. Et un ID quelconque se trouve t' il toujours dans la même ligne dans les deux feuilles
Je suppose que la réponse est non aux deux questions(et c'est bien dommage), mais on ne sait jamais!
0
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014
1 juil. 2014 à 14:34
Salut,

Q1. OUI, tous les ID se trouvent dans les 2 feuilles (j'ai fais une requête de non correspondance pour isolées les ID non présents dans l'un ou l'autre fichier).
Q2.tous les ID se trouvent toujours dans la colonnes A des deux fichiers (tri par ordre croissant).

Les seules choses qui changes :
- c'est des codes présent dans le fichier 1 et absent du fichier 2 ou inversement
- les codes ne se situent pas au même endroit sur les fichiers (ex le code 1 se trouve à la cellule b2 dans le fichier 1 et ce même code peut se trouver sur la cellule c3 du fichier2).

Vu la taille, on peux peut être couper le fichier en plusieurs morceaux (du code qui commence par AB001 à AX999)?

J'ai pensais à cette formule =NB.SI(code1;$D1)>0; ou une formule logique SI

Une formule qui permet de rapporter que les différences entre les codes des 2 fichiers suivant l'identifiant.

Merci.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
1 juil. 2014 à 15:45
On résume

1. Les deux colonnes 1 des deux fichiers sont identiques (mêmes ID classés par ordre alphabétique croissant)
2. un code donné peut se trouver plusieurs fois dans une feuille
3. un code donné peut se trouver à des adresses différentes dans les deux feuilles
4. tu veux obtenir uniquement
4.1. Les codes du fichier 1 qui ne sont pas dans le fichier 2
4.2. Les codes du fichier 2 qui ne sont pas dans le fichier 1
4.3. et ceci, sans attacher ces codes à des ID

Pour y voir plus clair, peux tu compléter ce mini exemple histoire de voir
- si j'ai compris
- exactement ce que tu veux obtenir
https://www.cjoint.com/?3GbpQQ4Q6j3
0
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014
1 juil. 2014 à 16:58
Tu trouveras sur le lien ci-dessous le résultat attendue :

https://www.cjoint.com/?3GbqX4I3lTD

J'ai copié sur la même feuilles les données du fichier 1 et 2 par ID, ensuite il faut une formule qui ne fait apparaitre que les différences entre les codes.

Dans le résultat attendue on s'en fiche de l'ordre des codes, l'important c'est de savoir s'ils sont présent ou non dans l'une autre fichier pour saisir seulement les données manquants dans l'une ou l'autre fichier.

Merci.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
1 juil. 2014 à 22:38
Un début de réponse à confirmer et à tester
https://www.cjoint.com/?3GbwLtpddl9

Cdlmnt
0
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014
2 juil. 2014 à 09:31
T'es trop fort! C'est super, ça à l'air de marcher au niveau de l'attendue.

Comment je peux faire pour le tester en grandeur nature avec mes 12 colonnes et 85 000 lignes? Tu as fais une macro?

Merci.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
2 juil. 2014 à 10:31
Tu peux d'abord tester sur une centaine de lignes histoire de pouvoir vérifier à la main
Tu copies dans la feuille Fichier1 et dans la feuille Fichier2 tes données (100 lignes, 12 colonnes)
Tu modifies les valeurs des constantes dans le code du Module 1
Clic
Si c'est bon, tu dis, il y aura quelques modifs à faire dans le code
0
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014
2 juil. 2014 à 12:00
Je ne vois pas ce que tu veux dire par "modifies les valeurs des constantes dans le code du Module 1"?

J'ai fait un copie coller des 100 1eres lignes sur le fichier 1 et 2.

Ca à l'air de fonctionner, est ce qu'on peut également ajouter la colonne ID dans le fichier attendu ( F1-F2 et F2-F1). Si pas possible, c'est pas gênant je ferais un copier/coller

Ca serait super.

Merci.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
2 juil. 2014 à 14:44
1. Pour le nombre de lignes, pas de problème, c'est calculé
2. Pour le nombre de colonnes, je l'ai limité à 8, dans le code (il est dans Module 1 -Alt-F11 pour y accéder, tu modifies les valeurs constantes
Public Const cofin1 = 8
Public Const cofin2 = 8
tu mets 1e nombre de colonnes (12 je crois) de tes fichiers (ID compris)
Dans la version définitive ça se calculera tout seul (comme le nombre de lignes)
3. On peut ajouter une colonne ID dans les feuilles résultat, et la ligne d'en tête

Mais,

le plus important, pour l'instant, c'est de tester sur 100 lignes
Si c'est OK, tu dis
0
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014
2 juil. 2014 à 15:55
c'est OK pour moi.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
2 juil. 2014 à 16:16
Avec la colonne ID et maj dela ligne en tête des codes
https://www.cjoint.com/?3GcqlCkSRT8

tu peux tester sur 10000 lignes histoire de voir le temps d'exécution

Restera à voir comment tu veux mettre ça en route
0
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014
2 juil. 2014 à 16:57
J'ai essayé avec 11 000 lignes, temps d'exécution 1,64 secondes

Just un truc, dans le résultat attendue, les codes qui commence 0, le chiffre 0 n'est pas repris (ex : 050612 est transformé en 50612)

A part ça, la macro tourne super bien.

A+
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
2 juil. 2014 à 17:05
1.64 s, ce n'est pas trop mal pour 11000 lignes.
Pour les "0", il devrait te suffire de mettre les feuilles résultat au format texte
puis un RAZ et un OK
tu essaies
0
Alivander Messages postés 15 Date d'inscription samedi 28 juin 2014 Statut Membre Dernière intervention 7 juillet 2014
2 juil. 2014 à 17:32
Je dirais que c'est même que c très bien :)

Pour les "0", ça marche

AU faite, j'ai essayé avec 60 000 lignes 8.654 s avec un petit message (Excel ne répond pas) puis la macro a quand même tourné au final.

C cool!
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
2 juil. 2014 à 19:12
Bizarre ce message d'excel
on peut tenter de diminuer la taille du tableau TFG (60000x12) puisque le nombre de codes à afficher par ligne est largement inférieur à 12, ça devrait le soulager un peu
De plus, si la ligne d'entête Code01...Code12 est toujours la même, on peut éviter de la copier a chaque lancement
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
2 juil. 2014 à 20:58
Une tentative avec tout exécuté en mémoire
Tu essaies sur 60000 lignes pour voir si ça va plus vite (sur 30 lignes, ça ne saute pas aux yeux) et si le message d'excel est toujours là
https://www.cjoint.com/?3Gcu4jvJ4BW
0