2009-11-12 5 views
1

J'ai une grande feuille de calcul Excel contenant plusieurs lignes d'adresse. Beaucoup de ces lignes d'adresse contiennent des codes postaux dupliqués, avec des différences d'adressage.Donner des doublons dans Excel un identifiant unique

J'ai besoin de séparer chacun de ces doublons sur différents spreadhseets, de sorte qu'aucun spreadhseet ne contienne le même code postal. J'utilise actuellement = si() instruction pour identifier les doublons, puis couper et poasting, et en répétant presque infini pour les speperate tous dehors

comme exemple:

address 1 postcode 1 
address 2 postcode 1 
address 3 postcode 1 
address 4 postcode 2 
address 5 postcode 2 
address 6 postcode 3 
address 7 postcode 3 
address 8 postcode 3 
address 9 postcode 3 

donnerait 4 feuilles de calcul :

1) 
address 1 postcode 1 
address 4 postcode 2 
address 6 postcode 3 
2) 
address 2 postcode 1 
address 5 postcode 2 
address 7 postcode 3 

etc

Les conseils sur un script vb?

Un grand merci

Nick

+0

Bonjour Nick, Si j'ai raison, vous voulez que votre feuille de calcul soit divisée en plusieurs feuilles de calcul. Chaque feuille de calcul n'aura jamais que des codes postaux uniques? Juste pour que je comprenne, quelle est la raison derrière cela? – BIDeveloper

+0

Yup - c'est à peu près ça ... l'exemple n'est pas vraiment sorti comme je m'y attendais, lol ... –

Répondre

2

Si cela est une chose unique, alors j'envisager de le faire dans la feuille de calcul et coupe-coller en vrac. Je vais essayer quelque chose comme ceci:

  1. Trier mes données sur le code postal colonne
  2. Dans une nouvelle colonne, ajouter une fonction à compter le nombre de codes postaux en dessous de la ligne en cours qui sont des doublons du code sur cette ligne (voir ci-dessous)
  3. Enregistrer (copier/coller-special valeurs) les valeurs obtenues
  4. Trier par numéro double
  5. blocs Couper et coller par numéro en double aux nouvelles feuilles

Dire que j'ai 20 valeurs comprises entre 1 et 5 dans la colonne G. Je mets la formule suivante dans H1:

=SUM(IF(G1:$G$20=G1,1,0)) 

... et (bit important) entrer comme une formule de matrice utilisant Control + Maj + Entrer. Maintenant, je copie cette formule vers le bas (pour la vitesse, double-cliquez sur le "handle de remplissage" dans le coin en bas à droite de la cellule). Voici mon résultat:

1 2 
1 1 
2 2 
2 1 
3 8 
3 7 
3 6 
3 5 
3 4 
3 3 
3 2 
3 1 
4 2 
4 1 
5 6 
5 5 
5 4 
5 3 
5 2 
5 1 

Maintenant, je peux copier la colonne H et édition ... Collage spécial ... Les valeurs pour fixer les valeurs. Trier par H pour obtenir ceci:

1 1 
2 1 
3 1 
4 1 
5 1 
1 2 
2 2 
3 2 
4 2 
5 2 
3 3 
5 3 
3 4 
5 4 
3 5 
5 5 
3 6 
5 6 
3 7 
3 8 

Maintenant, j'ai jeux d'enregistrements à copier à chacune des 8 feuilles que je sais maintenant sont nécessaires.

Bien sûr, si vous faites beaucoup de choses, une macro serait utile. Il ne doit pas être beaucoup plus complexe que l'automatisation de ce qui précède.

+0

Mike - fantastique .. merci :) Je vais voir si je peux enregistrer une macro à cela - nous devons le faire assez souvent, mais cette formule est génial :) –

Questions connexes