Aléatoire fonction excel sans les doublons et les interprétations des données
J'ai besoin de traduire un vieux programme de travail sur AS/400 qui a été la cueillette aléatoire aux étudiants de travailler pour ma ville. Je peux utiliser n'importe quel programme, aussi longtemps que cela fonctionne. Pour faire simple et rapide, j'ai choisi excel.
Cependant, j'ai un petit problème. J'ai besoin de ne pas avoir de doublons, parce que le même élève ne peut pas faire 2 emplois au cours d'un été. Aussi, j'ai besoin de cela pour être flexible, car chaque année, les nouveaux élèves seront ajoutés et certains seront supprimés.
Cette fonction fonctionne presque autant que je le veux:
=INDEX($A:$A,ALEA.ENTRE.BORNES(1,NBVAL($A:$A)),1)
L'index $A:$A obtient toutes les lignes de la colonne A. Donc, même si je ajouter 20 noms, il va les prendre en considération. Ensuite, il choisit au hasard une valeur (le nom) entre la ligne 1 et le nombre total de lignes (NBVAL) dans la colonne de $A. Le problème avec cette méthode est qu'elle permet à des doublons.
Une autre fonction que j'ai trouvé était de créer une colonne complète de =ALEA (), puis classez-les par les chiffres. Ce n'est pas très joli, mais au moins, il n'y a pas de doublons. Le problème vient de ma formule, qui est statique, et que je ne peux pas faire de flexible:
=INDEX($A$2:$A$74,RANG(B2,$B$2:$B$74))
Mes noms sont dans la colonne $A et mes valeurs aléatoires dans la colonne $B. Ce que je dis est, le rang de la valeur de B2 (puis B3, puis B4, etc.) qui se trouve dans la colonne B.
Ce que je voudrais, c'est d'intégrer les COUNTA dans la deuxième fonction et (SI POSSIBLE) de prendre les ALEA.ENTRE.BORNES au lieu de la fonction rang, de sorte que je n'ai pas laid numéros.
Je suis ouvert à utiliser la première fonction avec une sorte de recherche de doublons. Tant que la secrétaire n'a pas à faire beaucoup de manipulation, il doit être fine.
Merci beaucoup pour votre aide xox
Vous devez vous connecter pour publier un commentaire.
J'ai créé quelque chose en VBA qui fait ce que je pense que vous voulez. Maintenant, gardez à l'esprit que je suis très nouveau à l'aide de VBA, de sorte qu'il n'est probablement pas la plus jolie chose. Pour être clair, j'ai eu 10 noms dans la colonne A de les rangs 1 à 10 et puis tout simplement de l'exécution de cette sous-routine et il a généré une liste de noms uniques dans la colonne F. Voici mon code:
Si vous vouliez obtenir les noms un à un, il suffit de retirer la boucle. Comment il fonctionne, c'est qu'il fait exactement ce que vous avez fait avec l'INDEX et ALEA.ENTRE.BORNES fonctions, saisit le nom de la colonne A avec des qui a généré nombre, puis supprime cette ligne entièrement, et donc pas de nom unique est généré.
J'ai choisi la colonne F de manière arbitraire et de la cellule F11 particulièrement depuis que la cellule ne sera pas affectée lorsque les lignes sont supprimées.
J'espère que cette aide, et si ce n'est pas ce que vous cherchez, je vais voir si je peux l'améliorer un peu.
Il existe de nombreux exemples disponibles pour le faire en VBA (google Excel Aléatoire Unique) l'Un des meilleurs est de CPearson.Com qui comprend (entre autres):
Si vous ne souhaitez pas utiliser VBA puis ensuite, il peut être fait en quelques étapes simples:
=RAND()