Choisir le minimum d'une liste, sans les zéro, dans une formule

CISCO

XLDnaute Barbatruc
Bonjour à tout le monde

Dans une formule, j'ai MIN(0;0;0;0;0;16;0;0;18;0;20;21) (les zéro proviennent en réalité de divers FAUX dans des critères à l'intérieur de la formule) et c'est effectivement ce que je veux, ou presque.

En pratique, j'aimerai bien que la solution soit 16, et non pas 0. Comment faire, si possible avec une formule ?

Bien sûr, le premier nombre non nul n'est pas toujours à la même position, bien sûr je ne connais pas sa valeur, une fois, c'est 10, une autre fois, c'est 12, une autre fois...

J'ai essayé, entre autre, avec SUBSTITUE, mais alors j'obtiens MIN(" ";" ";" ";" ";" ";16;" ";" ";18;" ";20;21), ce que ne sait pas "lire" la fonction MIN (sauf à utiliser la macro eval peut être, mais comme j'aimerai faire sans macro)... Dommage.

Merci d'avance.

@ plus
 
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

Bonjour,

La liste est-elle présente en "dur" dans ta formule, ou bien s'agit-il d'une série de cellules ?

Dans ce dernier cas, une formule matricielle :

Code:
=MIN(SI(plage_cellules<>0;plage_cellules))

Formule matricielle à valider par CTRL + MAJ + ENTREE

@+
 

CISCO

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

Bonjour à tous, bonjour Tibo

Merci pour ta réponse...

Et non, malheureusement, la liste est en dur dans la formule, pas dans une plage de cellules intermédiaires.

A titre indicatif, la voiçi :
{=SI(ET(D22<0;E21>0);MIN((LIGNE(E$9:E21)-8>=I22)*(B22=B$9:B21)*LIGNE(E$9:E21))-I22)-8}

Si cela inspire quelqu'un, je suis toujours preneur.

Merci d'avance

@ plus
 
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

re,

Ca peut donner ceci :

Code:
=MIN(SI({0;0;0;0;0;16;0;0;18;0;20;21}<>0;{0;0;0;0;0;16;0;0;18;0;20;21}))

Bien que je vois pas trop l'intérêt de taper en dur une série de valeurs dans une formule pour en rechercher le minimum.

Dès lors que les valeurs sont saisies en dur, elles deviennent non évolutives et le mini sera toujours le même et surtout, connu dès la saisie de la formule.

@+
 

Tibo

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

re,

Un autre essai, avec emploi de la fonction SUBSTITUE :

Code:
=MIN(SUBSTITUE({0;0;0;0;0;16;0;0;18;0;20;21};0;9^9)*1)

Mais toujours avec la même interrogation quand à l'intérêt de la saisie en dur des valeurs dans la formule...:confused:

@+
 

CISCO

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

Bonsoir

Merci Tibo

J'avais déja essayé avec SUBSTITUE, mais en mettant des "" à la place de zéro. Mauvaise idée. Par contre, le coup du plus grand nombre, 9^9... Pas mal du tout. Pourtant, il me semble déja l'avoir vu, mais, là, je n'y avais pas pensé.

Ca marche nickel.

Je venais juste de trouver une autre solution, beaucoup, beaucoup plus lourde, en comptant le nombre de zéro...

Encore merci.

@ plus
 

abcd

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

Bonsoir,

J'avais trouvé la même solution que Tibo, plus modestement en remplaçant 0 par 100.

Mais cela ne fonctionne pas correctement.
Pour preuve, en remplaçant 20 par 10, le résultat reste 16, alors qu'il faudrait 10.

Cela provient du fait que 10 est remplacé par 1&9^9 (1387420489).
Je n'ai pas (encore) trouvé la parade.

abcd
 

Tibo

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

Salut abcd,

effectivement, pas testé suffisamment.

Du coup, retour à la formule proposée un peu plus tôt :

Code:
=MIN(SI({0;0;0;0;0;16;0;0;18;0;20;21}<>0;
{0;0;0;0;0;16;0;0;18;0;20;21}))

Bonne soirée

@+
 

CISCO

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

re,


Bien que je vois pas trop l'intérêt de taper en dur une série de valeurs dans une formule pour en rechercher le minimum.


@+

Bonsoir à tous, bonsoir Raja, Tibo et abcd

Je ne tappe pas les valeurs dans la fomule. Ce sont des calculs plutot tordus qui me donnent une série de valeurs, dont il me faut extraire la plus petite valeur non nulle...

Ta troisième formule n'est malheureusement pas plus "belle" que ce que j'avais trouvé en comptant les zéro. Dommage. Je vais m'y remettre...

Encore merci et bonne soirée.

@ plus
 

Tibo

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

Bonjour Cisco,

Peux-tu nous joindre un extrait de ton fichier ?

Car j'avoue avoir du mal à bien comprendre.

Quels sont ces calculs tordus ? Où sont-ils (quelles cellules) ? ...

A te (re)lire avec ce fichier.

@+
 

CISCO

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

Bonjour à tous

J'ai trouvé deux solutions tout à fait acceptables...
=PETITE.VALEUR(A1:A13;NB.SI(A1:A13;0)+1) ou encore
=GRANDE.VALEUR(A1:A13;NB.SI(A1:A13;">0"))

Peut être qu'elles serviront à d'autres (cf pièce ci-jointe).

En réalité, dans mon fichier initial, les valeurs de la plage A1:A13 sont le résultat de calculs faits dans la formule elle même. On a donc quelque chose du genre :
=PETITE.VALEUR(formule;NB(SI(formule=0;formule)+1)) (cela ne fonctionne pas avec NB.SI) ou encore
=GRANDE.VALEUR(formule;NB(SI(formule>0;formule)))


Merci à Tibo, abcd et Raja

@ plus
 

Pièces jointes

  • Min sans zérobis2003.xls
    22 KB · Affichages: 98
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

Bonjour,

Adaptation de la formule que je te proposais hier à 17h42 :

Code:
=MIN(SI($A$1:$A$13<>0;$A$1:$A$13))

Formule matricielle à valider par CTRL + MAJ + ENTREE

Essaye et dis-nous

@+
 

CISCO

XLDnaute Barbatruc
Re : Choisir le minimum d'une liste, sans les zéro, dans une formule

Bonjour à tous

Merci Tibo. Ca fonctionne parfaitement, même avec la formule à la place de la plage de cellule, mais c'est encore un peu long... vu la taille de la formule.

En fait, au début, j'avais essayé avec un MIN.SI(..., juste pour voir si cette fonction avait été implantée sur excel 2007. Et ben non:(

@ plus
 

Discussions similaires

Réponses
6
Affichages
216

Statistiques des forums

Discussions
312 502
Messages
2 089 049
Membres
104 012
dernier inscrit
baffyt2