Attribuer des identifiants uniques à une liste et ses doublons

leylani

XLDnaute Nouveau
Bonjour,

J'essaie d'anonymiser une liste en attribuant des numéros à des individus. Dans cette liste, certains individus n'apparaissent qu'une fois, d'autres 12 fois, d'autres 3 fois selon le nombre de dossiers respectifs...Je ne peux pas modifier l'ordre d'entrée des individus car les individus sont inscrits par ordre chronologique d'entrée sur l'année.

Je voudrais qu'Excel attribue un identifiant unique dans la colonne D, à chacune des personnes de ma liste (3000 individus) y compris aux personnes qui apparaissent plusieurs fois.

Ainsi, par la suite, je pourrais procéder à un échantillonnage aléatoire avec la fonction Alea.

Je ne sais pas exactement par où commencer ? Je ne maîtrise pas du tout les macros, ni les tris croisés dynamiques.
J'ai pensé à commencer par supprimer les doublons, puis attribuer des identifiants mais en faisant cela, je supprime également des dossiers de personnes.

Ma pièce jointe est plus claire, je pense, la colonne identifiant représente le résultat auquel je veux arriver avec Excel.

Merci :)
 

Pièces jointes

  • Identifiant.xls
    18 KB · Affichages: 104

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Attribuer des identifiants uniques à une liste et ses doublons

Bonjour,

Voir PJ

Code:
Sub Identifiant()
  Set mondico = CreateObject("Scripting.Dictionary")
  i = 1
  For Each c In Range([b2], [b65000].End(xlUp))
    temp = c.Value & c.Offset(, 1).Value
    If Not mondico.exists(temp) Then
       mondico(temp) = i
       i = i + 1
    End If
    c.Offset(, 2) = Format(mondico.Item(temp), "00")
  Next c
End Sub

JB
 

Pièces jointes

  • Copie de Identifiant.xls
    36 KB · Affichages: 110
  • Copie de Identifiant.xls
    36 KB · Affichages: 105
  • Copie de Identifiant.xls
    36 KB · Affichages: 110

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Attribuer des identifiants uniques à une liste et ses doublons

Bonjour leylani,

ou bien par formule: =SI(SOMMEPROD(($B$1:B2=B2)*($C$1:C2=C2))=1;MAX($D$1: D1)+1;EQUIV(B2&C2;$B$1:B2 & $C$1:C2;0)-1)

La formule est en D2. Elle doit être ensuite recopiée vers le bas jusqu'à la fin des données.
Attention cette formule est une formule matricielle.
Formule matricielle: Elle doit être validée par la combinaison des touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée comme une formule classique.
Si la validation matricielle est correcte, alors Excel entoure la formule d'accolades {=.......}.
Chaque fois que cette formule sera modifiée, la validation devra se faire par Ctrl+Maj+Entrée. Les accolades apparaissent à la validation et ne doivent pas être saisies au clavier.

Une fois la formule appliquée, comme les identifiants ne doivent pas changer en fonction des manipulations sur la feuille, il faut absolument copier la colonne E puis la coller sur elle-même par 'collage spécial/valeur'
 

Pièces jointes

  • Identifiant v1.xls
    28.5 KB · Affichages: 113
Dernière édition:

leylani

XLDnaute Nouveau
Re : Attribuer des identifiants uniques à une liste et ses doublons

Une fois la formule appliquée, comme les identifiants ne doivent pas changer en fonction des manipulations sur la feuille, il faut absolument copier la colonne E puis la coller sur elle-même par 'collage spécial/valeur'

Merci à tous les deux pour vos explications.

JB, excuse mon ignorance, mais je n'avais jusqu'à présent jamais eu un fichier avec des macros devant mo, je suppose que je dois cliquer sur Go ? Quand je le fais, il ne se passe rien ? Ou alors, je n'ai pas compris ce que je devais faire ?

Mapomme, tu évoques la colonne E, mais elle est vide ? Est-ce que tu parles de la colonne D ?

Ca ne devrait pas être le cas mais si je suis amenée à insérer des lignes par exemple, la formule adaptera-t-elle les identifiants en fonction ?

Merci :)
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Attribuer des identifiants uniques à une liste et ses doublons

>JB, excuse mon ignorance, mais je n'avais jusqu'à présent jamais eu un fichier avec des macros devant mo, je suppose que je dois cliquer sur Go ? Quand je le fais, il ne se passe rien ? Ou alors, je n'ai pas compris ce que je devais faire ?

JB
 

Pièces jointes

  • Copie de Identifiant.xls
    35.5 KB · Affichages: 74
  • Copie de Identifiant.xls
    35.5 KB · Affichages: 81
  • Copie de Identifiant.xls
    35.5 KB · Affichages: 88

leylani

XLDnaute Nouveau
Re : Attribuer des identifiants uniques à une liste et ses doublons

OK j'ai compris JB merci...
Mapomme, pas de souci :) hehe le matin, c'est jamais facile !

Qu'est-ce que je dois modifier dans le texte de la macro pour que les identifiants apparaissent en format 0001 puis 0010...0100 etc au lieu de 01...10...? Je choisis ce format car par la suite, je souhaite demander à Excel de m'indiquer le nombre de dossiers N dont dispose chaque personne dans une colonne E, en attribuant ce chiffre N devant cet identifiant. Par exemple, on voit que l'identifiant n°(00)07 a 2 dossiers (à cause du chiffre 2(00)07).

Merci :)
 

Pièces jointes

  • Copie de Identifiant (1).xls
    38.5 KB · Affichages: 56

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Attribuer des identifiants uniques à une liste et ses doublons

Voir PJ

JB
 

Pièces jointes

  • Copie de Identifiant.xls
    37.5 KB · Affichages: 77
  • Copie de Identifiant.xls
    37.5 KB · Affichages: 85
  • Copie de Identifiant.xls
    37.5 KB · Affichages: 85
  • Copie de Identifiant2.xls
    37 KB · Affichages: 85
Dernière édition:

leylani

XLDnaute Nouveau
Re : Attribuer des identifiants uniques à une liste et ses doublons

Merci JB et rebonjour,

Lorsque j'arrive à l'étape Barre d'Outils, j'ai le choix entre Débogage, Edition, User Form, Standard et Personnaliser. J'ai tenté avec User Form mais je n'ai pas trouvé la commande "Dessiner un bouton" ?
 

leylani

XLDnaute Nouveau
Re : Attribuer des identifiants uniques à une liste et ses doublons

Re-bonjour,

J'ai de nouvelles questions...Par rapport aux nombres de dossiers par personne, je voudrais faire apparaitre avec la commande "Filtrer" celles qui n'ont qu'un seul dossier par exemple. Or, Excel me fait apparaitre les dossiers des personnes qui ont un seul dossier mais aussi celles qui en ont 10. Que dois-je modifier dans le script pour attribuer des chiffres commençant par 0 pour toutes les personnes qui ont entre 1 et 9 dossiers ?
C'est-à-dire avoir 01+identifiant plutôt que 1+ identifiant ?

Ma deuxième question : je vais partir du nombre d'individus uniques (sans doublons, soit environ 1500) et faire un échantillonnage de 105 personnes au hasard. Ensuite, je voudrais faire apparaître le nombre de dossiers qu'ont ces personnes, par rapport à l'échantillon choisi, c'est-à-dire par rapport aux 105 personnes et non plus aux 3000 individus de ma liste. Que dois-je modifier dans le script ?

Merci...
 

leylani

XLDnaute Nouveau
Re : Attribuer des identifiants uniques à une liste et ses doublons

Bonjour et merci encore !

J'ai réussi à voir ce que je devais changer ensuite dans le script, si je voulais faire apparaître ceux qui avaient 3 dossiers, 4 dossiers etc.

Le dernier souci que j'ai eu, c'est quand je rajoute des noms dans les colonnes B et C, et que je lance la commande "Go", les identifiants associés apparaissent en format 1,2,3,4...au lieu de 0001, 0002, 0003, 004. J'aimerais pouvoir faire en sorte que ma colonne Identifiant garde le format en 000 même si j'ajoute des noms supplémentaires. Cela est-il possible ?

Peut-être est-ce du au fait que j'ai mis les premiers identifiants en format Texte au lieu du format Standard ? Je ne savais pas comment faire pour écrire 0001 autrement qu'en Format Texte. J'espère ne pas avoir de calculs à faire par la suite...

Par avance, merci
 

Pièces jointes

  • Identifiant2 - test.xls
    42.5 KB · Affichages: 61

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 502
dernier inscrit
talebafia