Le plus petit entier unique
Dans un forum Excel que je
consulte régulièrement, un challenge a été posé récemment. Plusieurs personnes
(en colonne A) doivent proposer jusqu’à trois nombres entiers. Le but du jeu
est d’avoir dans sa liste le plus petit nombre que personne d’autre n’a choisi.
Dans l’exemple ci-dessous, on
voit en F1 et en F2 le résultat de notre tableau en A1:D12, soit la valeur 7.
Question : Quelle
formule utiliser pour trouver le plus petit entier unique ?
Voici
deux réponses intéressantes.
La
première solution a été proposée par Elias Estrada, avec une formule
matricielle, donc validée avec [Ctrl]-[Maj]-[Entrée].
Formule
de F1 : =min(si(nb.si(B1:D50;B1:D50)=1;B1:D50))
La
seconde solution, proposée par Stephen Dunn, ne requiert même pas de formule
matricielle. Elle est en revanche sensiblement plus complexe :
Formule
de F2 : =min(index($B$1:$D$50+10^9*((nb.si($B$1:$D$50;$B$1:$D$50)>1)+($B$1:$D$50=""));))
Je
vous laisse le plaisir de la décortiquer pour comprendre son mode de
fonctionnement… Cela
revient à ajouter un grand nombre dès que la cellule concernée contient un
nombre non unique ou est vide.
Remarque
– On peut remplacer 10^9 par 100 si l’on est sûr que le plus petit nombre
unique est inférieur à 100…
Pour
pouvoir tester ces formules en « grandeur nature », je me suis amusé
à créer des séries aléatoires pour les trois nombres proposés. Voici les
formules que j’ai entrées en ligne :
B1 :
=ent(1+9*alea())
C1 :
=ent(B1+1+9*alea())
J’ai
ensuite recopié C1 en D1, puis le bloc B1:D1 vers le bas…
0 Commentaire(s):
Enregistrer un commentaire
<< Accueil