Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/07/2012, à 04:28

smed79

[Résolu] extraire (couper) les lignes doublons

Bonjour,

J'ai une base des donnés excel, contient 40 variables et plus de 7000 lignes représentés par les colonnes (Nom, Prénom, Age, Sexe, Adresse, Code, ...) et je voudrais extraire (couper) les lignes doublons dans une autre feuille sachant que les doublons doivent être uniquement similaires aux noms (70%), prénoms (70%) et aux localisations (100%).

le variable noms est nommé NOMS
le variable prénoms est nommé PREN
le variable localisation est nommé LOC

voila un exemple pour expliqué le pourcentage :

-------------------------------------------------------------------------------------
| ETAT | CON | AGE | NUMMAT | DOUB | NOMS | PREN    | SEXE | DATEN | LOC   | ADRDET |
-------------------------------------------------------------------------------------
|  LB  |     |  55 |        |      |Linus |Torvalds |  H   | 1112  |  771  | Tlem   |
-------------------------------------------------------------------------------------
|      |     |  53 |  null  |      |Linus |Torvalds |  H   | 0112  |  700  |        |
-------------------------------------------------------------------------------------
|      | BB  |  60 |        |      |Linus |John     |      | 0510  |  771  | Tlem   |
-------------------------------------------------------------------------------------
|      |     |  11 |        |      |Linux |Torvolds |      |       |  771  | Oran   |
-------------------------------------------------------------------------------------

ici il faux extraire la ligne 1 et 4 ! 2 lettres dans "NOMS" et "LOC" 100% exacte il saget ici de la meme presonne une erreur de frappe.

Une ligne va etre considérer comme doublon seulement si la localisations est identiques et les noms, prénoms est identiques ou presque a une lettres alphabetique ou deux.

un fichier exemple pour mieux comprendre
[txt] http://pastebin.com/pU8LfHP8
[xsl] https://docs.google.com/spreadsheet/ccc … HdPUW9kTVE

un ami m'a conseillé d'exporter le fichier exel en text et chercher une commande shell et comme je suis pas un utilisateur avancé je me suis retourner a un forum linux pour exposé mon problème demmander de l'aide.

merci d'avance.

Dernière modification par smed79 (Le 25/07/2012, à 08:50)

Hors ligne

#2 Le 03/07/2012, à 04:57

Bousky

Re : [Résolu] extraire (couper) les lignes doublons

« Linus » c'est le prénom, et « Torvalds » le nom tongue

À mon avis le point le plus dur, c'est d'obtenir un quantification de la différence entre les chaines. Je ne sais pas comment Excel calcule les 70 %… La seule méthode que je connaisse est la distance de Levenshtein, mais ce n'est pas un pourcentage.

Dernière modification par Bousky (Le 03/07/2012, à 04:57)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#3 Le 03/07/2012, à 05:29

smed79

Re : [Résolu] extraire (couper) les lignes doublons

Bousky a écrit :

« Linus » c'est le prénom, et « Torvalds » le nom tongue

À mon avis le point le plus dur, c'est d'obtenir un quantification de la différence entre les chaines. Je ne sais pas comment Excel calcule les 70 %… La seule méthode que je connaisse est la distance de Levenshtein, mais ce n'est pas un pourcentage.

Ok « Linus » prénom, et « Torvalds » nom big_smile

En est fait le problème et du que cette base des donnés été gérais par plusieurs personnes avant que j'interviens et il est impossible pour moi de faire la correction manuellement (plus de 7000) hmm et du que français c'est pas ma langue j'ai choisi le pourcentage % pour économiser un peu de salive tongue
Si la méthode distance de Levenshtein m'aide a résoudre mon problème sans hésitation je suis preneur !

Hors ligne

#4 Le 03/07/2012, à 07:25

LeXav

Re : [Résolu] extraire (couper) les lignes doublons

Intéressant ton problème smed !

Je pensais voir avec sed/awk ... mais je ne suis pas assez calé. Et surtout la différence de ' 70%' est difficile a apprécier.
La méthode Levenshtein semble une piste. Mais je n'ai pas trouvé de code sous Libre office qui peut le faire (ce serait idéal, tu crée une fonction qui te donne cette différence, puis un tri, puis une suppression ...). Par contre, il existe une fonction php...


Geek dans la mode enfantine.
La Queue du Chat
Progression du libre dans la boite : 70%
Nombre d'users restant a convertir : 3 :-)

Hors ligne

#5 Le 03/07/2012, à 07:53

smed79

Re : [Résolu] extraire (couper) les lignes doublons

@LeXav smile merci d'avoire pris le temps pour me répondre.

je sais que vous m'avez bien compris et je veux qu'on oublie cette 70% wink remplacé par maximale de ressemblance des caractères qui forme une chaînes similarité qui se suive avec =, + ou - un ou deux caractères !

ex: LeXav, LaXav, L3Xav, LeXave, xLeXav

moi aussi j'ai cherchez sur des forum spécialisé exel ou Libre office mais j'ai pas trouvé de fonction pour ça  hmm a par supprimer les doublons !
En PHP qu'elle est la fonction ?

Dernière modification par smed79 (Le 03/07/2012, à 07:54)

Hors ligne

#6 Le 03/07/2012, à 08:03

LeXav

Re : [Résolu] extraire (couper) les lignes doublons

J'ai trouvé des algo pour calculer cette ressemblance de chaine. Mais rien de directement utilisable (pour moi) dans le basic de Libre office.

A priori, la méthode que j'utiliserais pourrait ressembler à ça :

1 : Trier par NOM, PRE et LOC.
2 : Rajouter des champs 'Ressemblance_nom' 'Ressemblance_prenom' et 'egalité_LOC'. Dans les champs 'Ressemblance', j'y mettrais le résultat de la formule 'magique'
3 : Ajouter un champs qui combine le tout. Ex si(Ressemblance_nom>70% and Ressemblance_prenom>70% and egalité_Loc=1) alors 'Vrai', sinon 'faux'
4 : puis un tri sur ce dernier champs et je supprime les lignes avec 'Vrai'

Bon... yapuka écrire cette formule de distance en basic Libreoffice...


Geek dans la mode enfantine.
La Queue du Chat
Progression du libre dans la boite : 70%
Nombre d'users restant a convertir : 3 :-)

Hors ligne

#7 Le 25/07/2012, à 07:47

smed79

Re : [Résolu] extraire (couper) les lignes doublons

Merci j'ai traité les fichier manuellement tongue

Désolé pour la réponse hmm en retard pendant un certain temps il m'était impossible d'accéder au site.

Erreur HTTP 500 (Internal Server Error) ...

Dernière modification par smed79 (Le 25/07/2012, à 07:49)

Hors ligne

#8 Le 25/07/2012, à 08:20

LeXav

Re : [Résolu] extraire (couper) les lignes doublons

smed79 a écrit :

Merci j'ai traité les fichier manuellement tongue

Ça n'a pas du être facile... ;-)


Geek dans la mode enfantine.
La Queue du Chat
Progression du libre dans la boite : 70%
Nombre d'users restant a convertir : 3 :-)

Hors ligne

#9 Le 25/07/2012, à 08:49

smed79

Re : [Résolu] extraire (couper) les lignes doublons

LeXav a écrit :
smed79 a écrit :

Merci j'ai traité les fichier manuellement tongue

Ça n'a pas du être facile... ;-)

j'été pas seul j'ai partager le travaille big_smile Enfin juste pour info il s'agite d'une étude statistique d'une maladie réalisé sur 7000 patients.
Merci pour votre précieux aide.
@++

Hors ligne