Sortir la valeur mini dans un choix multiple...

Stardust31 Messages postés 50 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 29 novembre 2010 - 14 mars 2007 à 23:55
Stardust31 Messages postés 50 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 29 novembre 2010 - 15 mars 2007 à 22:33
Bonjour,
le titre du sujet n'est peut-être pas très clair mais c'est plus simple à expliquer qu'à résumer dans un titre....

dans excel j'ai par exemple le tableau suivant :

 a       b       c       d       a       e       f       g       h       h       i       b 
55     33     66     41     16     5       47     23     59    11    18     21

en utilisant les fn =INDEX( ; EQUIV(....))
j'obtiens

 a     b     c     d     e    f      g     h     i
55   33   66   41    5   47   23   59   18

or je cherche à obtenir la valeur mini quand il y a plusieurs valeurs possibles....
c-à-d :
 a     b     c     d    e    f      g     h     i
16   21   66   41   5   47   23   11   18

est-ce possible sans passer par une macro ?

merci du coup de main

Stardust

10 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
15 mars 2007 à 01:25
Ça dépend comment sont placées les données, mais il existe une fonction Excel
Petite.Valeur

Disons que tu as plusieurs données dans la colonne A
=PETITE.VALEUR(A1:A10;1)
te retournera la plus petite valeur dans ce Range

Mais je ne sais pas si ça peut convenir dans ton cas... (?)

MPi
0
Stardust31 Messages postés 50 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 29 novembre 2010
15 mars 2007 à 06:30
Bonjour MPi,
merci .
je ne crois pas que cela soit la réponse :
en effet, INDEX(EQUI) va me sortir la 1° valeur qu'il rencontre et pas la plus petite quand plusieurs valeurs sont associées à la valeur recherchée...
(je sais pas si je suis clair là.....)
peut-être y a une autre combinaison que INDEX(EQUIV) mais je la connais pas....

je renouvelle mon "help !!!!!"
0
fred.toto Messages postés 73 Date d'inscription mardi 10 avril 2001 Statut Membre Dernière intervention 4 mars 2009
15 mars 2007 à 08:41
Salut,

Tiens, si ca peut t'aider....

    Dim i As Integer
    Dim iValMin As Integer
   
    iValMin = 32000
   
    'Ici tu as 12 valeurs...
    For i = 1 To 12
        If Cells(1, i) < iValMin Then
            iValMin = Cells(1, i)
        End If
    Next
   
    MsgBox "Valeur min: " & iValMin

Fred.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
15 mars 2007 à 08:43
Salut,
Je ne sais pas si cela peu t'aider (étant donné que tu ne veux pas passer par une macro) mais il y a peu de temps il a eu cette discution
C'était l'inverse qu'il cherchait à faire = > trouver les plus grandes. Mais peu être qu'en remplacant la ligne adéquat par celle proposée par  [auteurdetail.aspx?ID=6078 MPi] cela marchera sans trop modifier de chose.

@+: =89254 Ju£i?n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 mars 2007 à 08:56
Bonjour,

je me demande si'il ne faudrait pas commencer par la définition que donne à "tableau"    Stardust31  quand il écrit :

dans excel j'ai par exemple le tableau suivant :

 a       b       c       d            e       f       g            h       i       b 
55     33     66     41     16     5       47     23     59    11    18     21

comment tout celà est-il précisément disposé sur sa feuille ?
A défaut de le savoir, ce sera un dialogue de sourds, à mon avis ...
0
fred.toto Messages postés 73 Date d'inscription mardi 10 avril 2001 Statut Membre Dernière intervention 4 mars 2009
15 mars 2007 à 09:07
Je suis d'accord avec JM,


mon exemple marche si t chiffres sont sur la première ligne et de la première à la 12ème colonne.


 
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 mars 2007 à 09:28
Eh oui !
Et ma remarque mérite quelques explications :
1) dès lors que Stardust31 précise qu'il ne veut pas utiliser une macro, nous ne sommes plus en VBA mais en Excel
2) je n'ai pas EXCEL, mais vois qu'il possède une fonction PETITE.VALEUR qui extrait la plus petite valeur d'un "range"
3) si le "range" est facile à déterminer lorsque tout se trouve à la suite, sur plusieurs lignes, dans une même colonne, (par exemple une colonne sous "a", etc...) il en va bien différemment si les a, b, etc... sont disposés de facçon répétitives sur la même ligne ! et là :
- il serait déjà assez fastidieux de définir un "range" si chaque lettre (a,b,c, ...) avait une position fixe et connue
- il serait encore plus dur de définir ce "range" si l'on ne connaissait pas à l'avance ces positions.
et alors ?
Comme je l'ai dit je ne connais pas du tout Excel mais entrevoit assez facilement que la chose serait impossible à moins que :
- Excel ne possède par ailleurs une fonction genre "WHERE" capable de lire où l'on aurait "a" (par exemple) sur la ligne, etc...
- Il y ait ensuite la possibilité de faire une "imbrication" de "WHERE" et de "PETITEVALEUR" assez fastidieuse...(et encore : si possible !)

Voilà
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 mars 2007 à 09:41
Je vais peut-être dire maintenant une bêtise (je ne connais absolument pas EXCEL) :

si les lettres a, b, c, etc... sont frappées sur une ligne et que des chiffres sont frappés "en regard" sur la ligne au-sessous.

placer quelque part sur sa feuille des "signets" ayant pour noms ces lettres et, à chaque frappe d'un chiffre : lire la lettre qui se trouve "au dessus" et abonder le signet dont le nom correspond à cette lettre. Perfectionner au besoin, s'il existe en plus la possibilité d'utiliser une fonction telle que le signet ne serait "abondé" que si la valeur nouvelle est plus petite que la valeur déjà là...

in fine : lire alors chaque signet.


 


Il est fou, jmf ...
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
15 mars 2007 à 11:49
Stardust31,
comme il a été dit par jmf et appuyé par fred.toto, peux-tu indiquer clairement la façon dont sont disposées tes données ?
Est-ce que c'est exactement comme ton exemple ? i.e. des lettres à la volée sur une ligne, qui peuvent se répéter, et des valeurs sous ces lettres sur une 2e ligne ?

MPi
0
Stardust31 Messages postés 50 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 29 novembre 2010
15 mars 2007 à 22:33
MPi,
c'est exactement cela :
une 1°ligne avec du texte dans les cellules, texte qui peut être identique dans différentes cellules
et en dessous une 2° ligne avec des nombres...
je cherche à extraire la valeur mini pour le texte correspondant ...

mes neurones ont fumés... mais j'ai fini par trouver :
=min(index(...;equiv(....));index(...;equiv(....));.....)
il faut que je me "débrouille" de telle manière que dans chaque zone définie par index(...;equiv(....)), il n'y ai pas de doublon...
OK, c'est lourdo mais je sais pas faire mieux sans macro.
en tout cas, merci du coup de pouce

Stardust
0
Rejoignez-nous