Disons que vous avez une liste d’employés (ou de produits, ou de widgets, ou autre) et que vous souhaitez choisir deux éléments de cette liste, au hasard.

Il existe plusieurs fonctions de feuille de calcul différentes que vous pouvez utiliser pour sélectionner des éléments dans la liste, telles que RANDOM et RANDBETWEEN.

De nombreuses personnes utilisent la fonction RANDBETWEEN car elle est très simple et fournit un nombre aléatoire dans une plage. Ainsi, si vous avez 25 éléments dans votre liste, RANDBETWEEN peut renvoyer un nombre compris entre 1 et 25, qui peut alors correspondre à des éléments de la liste.

Par exemple, disons que votre liste d’éléments est dans la plage A2: A26, et que vous attribuez à cette plage le nom d’éléments. Vous pouvez ensuite mettre la formule suivante dans la cellule C2 pour renvoyer un nombre entre 1 et le nombre d’éléments:

=RANDBETWEEN(1,ROWS(Items))

Copiez cette formule dans la cellule C3 et vous avez maintenant deux nombres aléatoires qui représentent des éléments de la liste. Dans les cellules D2 et D3, vous pouvez mettre des formules comme celle-ci pour obtenir les noms réels de la liste:

=INDEX(Items,C2)

Le seul problème avec cette approche est qu’il est possible pour les deux instances de RANDBETWEEN (cellules C2 et C3) de renvoyer la même valeur, et ainsi vous vous retrouvez avec le même élément sélectionné deux fois dans votre liste.

Une façon de contourner ce problème potentiel consiste à sélectionner en fait trois éléments dans la liste au lieu de deux. Si les deux premiers éléments sont identiques, le troisième peut être utilisé comme élément de «secours» pour fournir le second unique. La méthode n’est pas infaillible, car il est possible – mais tout à fait improbable – que les trois soient identiques.

Une approche différente pour sélectionner des éléments dans la liste consisterait à attribuer à chaque élément sa propre valeur aléatoire, puis à sélectionner en fonction du nombre le plus élevé de la série. La fonction RANDOM renvoie une valeur aléatoire comprise entre 0 et 1. Dans chaque cellule de la colonne B, juste à droite de chaque élément de la colonne A, mettez cette formule:

=RAND()

Sélectionnez la plage de cellules (B2: B26) et nommez la plage en utilisant un nom tel que ItemNums. Vous pouvez ensuite déterminer le premier nom aléatoire de la liste en utilisant la formule matricielle suivante:

=OFFSET(A$1,SUM((LARGE(ItemNums,1)=(ItemNums))*ROW(ItemNums))-1,0)

Afin de signifier qu’il s’agit d’une formule matricielle, entrez-la en appuyant sur Maj + Ctrl + Entrée. La formule doit renvoyer un seul nom. Vous pouvez ensuite utiliser la formule matricielle suivante pour renvoyer le deuxième nom:

=OFFSET(A$1,SUM((LARGE(ItemNums,2)=(ItemNums))*ROW(ItemNums))-1,0)

La raison pour laquelle l’utilisation de l’approche de la fonction RAND fonctionne mieux que l’utilisation de RANDBETWEEN est que la probabilité que RAND renvoie deux valeurs identiques est infiniment petite, alors que les chances de RANDBETWEEN le font sont beaucoup plus élevées.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (12082) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.

Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Picking_Different_Random_Numbers_from_a_Range [Sélection de différents nombres aléatoires dans une plage].