Repérer des anomalies

Résolu/Fermé
Zored - 17 févr. 2014 à 13:48
 zored - 19 févr. 2014 à 12:45
Bonjour,

Voila mon problème:

je possède une base de donnée excel d'environ 30k lignes. J'y ai des informations sur le transport. Je dois repérer les anomalies de saisies, par exemple lorsqu'il existe 2 noms différents pour un même point de livraison, ex:
A-----------------------------B
POINT DE LIV ------------ COMMUNE
.
Auchan --------------------Strasbourg
Auchan Strasbourg ----- Strasbourg
etc

(A et B représente 2 colonnes)

Cet exemple laisse apparaître 2 points de livraison mais il s'agit en réalité d'un seul point de livraison (bien qu'ici cela concerne 2 livraisons (1 liv par ligne))

Je voudrais faire apparaître l'anomalie (qu'il existe plusieurs "noms de point de liv" pour un seul point de livraison réel).

J'ai essayer diverses techniques mais rien de concrets

Je vous remercie d'avance car j'ai vraiment besoin de solutionné ce problème.
Mon niveau est très basique en excel.

9 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
17 févr. 2014 à 13:51
Bonjour
le problème pour répondre à votre question, est de savoir ce qui est une anomalie et ce qui ne l'est pas!
Un exemple, ça fait vraiment juste pour en décider!
A vous lire?
crdlmnt
0
Bonjour,

Les 2 sont des anomalies,
une anomalie en est une du moment qu'il existe 2 noms différents pour 1 seul point de livraison.
Je parle ici de point de livraison, pas de livraison (une ligne = 1 livraison)

Il n'y a pas de standard, si mes 2 points de livraison AUCHAN à livrer à strasbourg s'apellent AUCHAN STRASBOURG, il n'y a pas d'anomalie

Si j'ai un 2ieme point qui s'appelera AUCHAN au lieu de AUCHAN STRASBOURG, les 2 seront en anomalie, après la décision m'appartient de choisir quel nom de point de livraison je garderais

J'espère que vous m'aurez plus facilement compris, merci pour votre rapidité en tout cas

Cordialement


EDIT: voici une capture d'écran illustrant bien le problème:
http://image.noelshack.com/fichiers/2014/08/1392642578-point-de-liv.png
Vous verrez ici 2 point de livraisons de noms différents, mais ils 'agit du même Auchan à Strasbourg, mais avec un nom de point de livraison différent. J'aimerais mettre cette situation en évidence et la reproduire en cas d'erreurs

du style:

Si(point de liv= point de liv + commune; point de liv+commune; point de liv + commune) ou quelque chose du genre
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
17 févr. 2014 à 14:20
Oui , je comprend à peu près le problème, mais je ne vois pas comment le traiter sur 30000 lignes, car il va être difficile de dire à Excel que tel ou tel point est le même que l'autre mais écrit différemment!
la seule proposition possible pour moi (pour d(autres il y aura peut être mieux) de filtrer en cascade:

1°) sur la colonne B de destination, on sélectionne "Strasbourg"
2°) sur la colonne A point de livraison, qui va afficher dans sa liste de choix les différents libellés présents pour Strasbourg,sélectionner les libellés réputés correspondants à la même destination pour filtrer au 2° niveau
3°) de corriger en conséquence par copier coller sur le lignes visibles.

A moins que vous n'ayez qu'un seul point de livraison par adresse en B, auquel cas ce serait plus simple. Par exemple un seul point à Strasbourg.

Sinon il faut établir une base de données avec les références souhaitées,(ce qui permettra de refaire une colonne A en fonction de l'adresse choisie) mais pour être plus précis, ,il faudrait le modèle de votre liste.(les deux colonnes point et adresse suffisent)
Si possible, déposez le sur:
https://www.cjoint.com/
et revenez placer ici le lien donné par le site.
A vous lire
crdlmnt

crdlmnt
0
Bonjour

Ci joint le lien demandé

http://cjoint.com/?0BroHpwgMcd



Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
17 févr. 2014 à 15:14
Re

voila tout ce que je peux faire pour vous

https://www.cjoint.com/?DBrpc63rOrz

Explications:
la colonne E contient la iste exhaustive des villes de la colonne C de votre modèle
la colonne F renvoie le premier code trouvé dans la liste en C pour la ville affichée en E
(le remplissage par formule en Fà été remplacé par les valeurs pour alléger le fichier)
une mise en forme conditionnelle passe en jaune toutes les lignes de B et C dont le nom de ville ne correspond pas au nom de lieu de livraison trouvé en colonne F
Mais comme il y a à priori plusieurs points de livraisons pour la même ville, le cas de figure n'est pas traité. (On ne peut pas savoir en effet s'il s'agit d'un différence de libellés ou de deux adresses différentes)
Si il; n' y avait qu'une seule adresse par ville, on pourrait, à partir du tableau E:F, remplir une colonne D qui renverra le nom du lieu de livraison, mais je ne pense pas que cela soit le cas.

En attendant, ce que vous pouvez faire:
1° classer le tableau BC selon la colonne C pour grouper selon les noms de ville
2° filtrer ce tableau (par couleur) selon la couleur jaune de la MFC qui ne fera apparaître que les lignes non conformes
et décider de visu de ce que vous devez faire

Notez que vu le nombre de données, il faut un peu de patience pour afficher les filtres

crdlmnt
0

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

Posez votre question
Bonjour,

Merci beaucoup pour votre aide ! Toutefois, je ne comprends pas la mise en forme conditionnelle permettant de détecter les anomalies ... ? Pourriez vous m'éclairez un peu (si vous voulez bien, vu le temps que vous avez déjà passé à m'aider)

Cdlt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
17 févr. 2014 à 16:01
Re
Tout d'abord on ne peut pas appeler ça des anomalies mais plus exactement des non conformités par rapport au texte de la première valeur trouvée en B pur la ville en C.

Je décompose ce que j'ai fait dans votre modèle du début à la fin

1°) copier la colonne C, la coller sur E

2°) sélectionner la colonne E, ruban/ Données / Supprimer les doublons
ainsi E est une liste exhaustive des noms de ville en C

3°) placer en F la formule qui permet de retrouver le code de point de livraison en B par rapport à la ville en C
soit en F1, tiré sur la hauteur utile:

=INDEX(B:B;EQUIV(E1;C:C;0))

cette formule a disparu car j'ai fait sur la colonne F un collage valeur pour conserver sans formule les résultats obtenus.

4°)Placer en colonne B de B1 à B30000 une mise en forme conditionnelle, que vous verrez en sélectionnant B1 et / Ruban / Accueil / Mise en forme conditionnelle / Gérer les règles

vous y trouverez le formatage et la formule ci dessous:

=INDEX($F$1:$F$3746;EQUIV($C1;$E$1:$E$3746;0))<>$B1
cette formule va chercher dans la colonne F le nom du site en ligne avec la ville indiquée en C, et le compare avec la valeur de B sur la ligne. Le format passe en jaune si les deux valeurs ne sont pas identiques.

Espèrant avoir été clair, ce n'est pas facile par messagerie interposée!

crdlmnt
0
Donc si j'ai bien compris la mise en forme conditionnelle m'indique si le point de livraison est bon par rapport à la commune de livraison, et s'il est différent alors il passe en jaune
Savez vous comment identifie t on la "bonne" ville de destination ... ? (si c'est bien cela que vous tentiez de m'expliquer)

Par exemple j'ai 3 lignes

point de livraison-----------------------------------

auchan--------------------------------------------- STRASBOURG
auchan--------------------------------------------- STRASBOURG
auchan strasbourg--------------------------------- STRASBOURG

où tous ces points de livraisons sont à livrer à strasbourg
le résultat sera que ces 3 données seront en jaune ? (si j'ai bien compris)

Merci beaucoup !!! :)
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
17 févr. 2014 à 16:44
Ben non.... seuls seront en jaune les résultats différents de la 1° ligne du tableau B:C

Pour votre exemple; si le auchan (seul) est en premier dans le tableau, seul les auchan strasbourg seront en jaune

Seules sont en jaune les valeurs qui n'existent pas dans la colonne F pour chacune des villes

Je répète comment a été construite la colonne f, soit une formule qui cherche le nom de la ville de E dans la colonne C, s'arrête à la première ligne comportant ce nom et renvoie la valeur de B

Si ces valeurs en F ne vous conviennent pas, vous pouvez les modifier manuellement (en F)
ressortiront alors en jaune toutes les valeurs de B pour la ville concernée qui ne correspondront pas à ce que vous avez écrit.

crdlmnt
0
Bonjour,

Merci pour tout, votre aide m'a été précieuse

Cdlt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
18 févr. 2014 à 11:29
Pas de quoi ..... bonne route
je mets le sujet en résolu.
crdlmnt
0
Re bonjour,

Merci pour votre aide de la veille, j'ai pu trouvé grâce à google quelques renseignements qui seraient parfait si j'arrivais à les adapter à mon cas. Je me proposais de diviser les possibilités, j'ai pu en identifier 3:

1. il existe une anomalie par rapport à ma BDD

2. il n'y a pas d'anomalie par rapport à ma BDD (idéalement)

3. le point de livraison n'est pas contenue dans ma BDD, même avec la soustraction de la "commune de liv" s'il y en a une (j'ai trouvé une macro pour enlever le texte d'une colonne contenue dans une autre colonne, par exemple
Col A----------------------------------- COL B
JANVIER 1998 en vacance--------- JANVIER
FEVRIER 1999 en Europe---------- FEVRIER
FEVRIER 2001 en Australie-------- MARS

etc...
La macro permettra de supprimer le texte "JANVIER", "FEVRIER", "MARS"... etc de la colonne où sont contenue toutes les infos (JANVIER 1998 en vacance, etc)
soit de supprimer le texte de la colonne B dans la colonne A


Propositions :

1. dans le cas d'anomalie par rapport à ma base de donnée client

Vérification que la colonne "point de liv" contient le texte de la colonne "commune de liv" concernant les clients de ma liste "listeclients"

=> par macro (j'ai trouvé sur internet une macro pour soustraire du texte, ce qui permet d'afficher une erreur lorsque ce texte n'est pas présent, en revanche cela ne fonctionne donc uniquement pour les clients de ma base de donnée...)

si le texte "commune de liv" (Strasbourg) n'est pas contenue à la fin de mon "point de liv" (Auchan tout seul par exemple), alors écrire anomalie

2. Dans le cas où il n'y a pas d'anomalie:

Si le texte "commune de liv" (Strasbourg par ex) est contenue à la fin de la colonne "point de liv" (donc Auchan Strasbourg par exemple ici)
alors ce n'est pas une anomalie et la conformité est bonne


3. point de livraison (client) non contenue dans la base de donnée


si le texte "commune de liv" (Strasbourg) n'est pas contenue à la fin de mon "point de liv" (Auchan tout seul par exemple), alors écrire anomalie

si le "point de liv" n'est pas contenue dans ma base de client alors me le mettre le fond en orange, ou en jaune .. etc pour les mettre en évidences, et faciliter le traitement des données

j'aurais donc chercher divers renseignements à savoir :

- modifier ma macro pour qu'elle ne m'efface pas les "communes de livraison "de de ma colonne "point de liv" (car c'est ce que cette macro fait) mais qu'elle m'affiche "conforme" ou "non conforme" à la place, où le cas "conforme" est le cas 2 et le cas "non conforme" est le cas 1 et 3.
macro disponible ici avec l'exemple que j'ai repris ci dessus au début de mon post
http://www.excel-downloads.com/forum/attachments/forum-excel/129330d1254131817-soustraire-donnees-texte-suppressions.zip

Je reste entièrement disponible envers quiconque sera assez charitable pour m'aider... :)

SOURCE:
http://www.excel-downloads.com/forum/127894-soustraire-donnees-texte.html
0