Trouver une valeur dans une plage fluctuante

Résolu/Fermé
fofi - 6 avril 2011 à 09:59
 fofi - 7 avril 2011 à 11:38
Bonjour à tous et toutes,
Un gros coup de main est demandé car j'avoue bloquer:
Dans ma colonne B, j'ai des n° de centres (de 1 à 12) sachant que plusieurs lignes peuvent avoir le même n°.
Dans ma colonne AG: j'ai des dates.
... et tout ce que je souhaite est calculer la plus petite date pour chaque centre (sachant que le classeur va se compléter sur 2 ans et sans avoir à rentrer les plages manuellement).
Pour ce faire, j'ai essayé (pour la 36ème tentative de dire à excel): je veux la plus petite valeur dans la plage pour laquelle le centre = 1 :
=INDEX((B2:B772;AG2:AG772);PETITE.VALEUR(EQUIV(1;B2:B772;0);1);2)

bé ça n'a pas marché... une 37ème fois...
snif
Sophie



4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 6/04/2011 à 10:08
Bonjour

Exemple à adapter à ton besoin
centre cherché en D2
centres en colonne A
date en colonne B

=MIN(SI(A2:A13=D2;B2:B13))

à mettre au format date
Formule matricielle à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule


Michel
0
Merci Michel!
J'aboutis au moins à une date mais il m'affiche celle du 1er janv 1900...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
6 avril 2011 à 11:10
Désolé, tu t'es planté quelque part, peut-^tre dans la validation ( au cas où:c'est XL qui met les accolades)

démonstration de ma formule
https://www.cjoint.com/?3egli4nCgXh
0
Michel,
mon pc de bureau n'accepte pas d'ouvrir ton fichier.
Il se pourrait que ça ne marche pas chez moi car ma configuration de tableau est différente.
La cellule où je voudrais faire apparaître les dates est dans une autre feuille que la plage de référence (feuille ENR!)
J'ai essayé ta formule:
MIN(SI(ENR!B2:B772=1);ENR!AG2:AG772)) avec ctrl+ maj+ entrée => rep 1er janv 1900
n° des centres colonne dates

Comme tous les inscrits dans les colonnes B ne seront pas forcément "inclus" dans mon étude, il y a donc quelques cellules de dates d'inclusion qui sont vides (puisque gens pas inclus mais enregistrés quand même)... donc j'ai pensé que les cellules vides étaient peut-être interprétées comme la date 1er janv 1900, donc j'ai ajouté à ta formule la condition d'être "selectionné(e)":

MIN(SI(ET(ENR!B2:B772=2;ENR!AF2:AF772="selectionné(e)");ENR!AG2:AG772))
mais ça me donne tjs le 1er janv 1900.

La "seule" différence que je vois avec ta formule est que compte tenu de la disposition de mes différentes colonnes, feuilles, etc, je n'ai pas pu écrire ton D2 est ai donc mis 1 pour le centre 1, ou 2, pour le 2, etc... mais toutes les formules me donnent le 1er janv 1900

cette formule me titille sérieusement...
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
6 avril 2011 à 13:03
Bonjour
si vous avez des valeurs nulles en ligne avec le code cherchée, la formule MIN renvoi le 0. Je me tortille l'esprit pour trouver une formule matricielle basée sur:
=PETITE.VALEUR(B2:B11;NB.SI(B2:B11;0)+1))
qui renvoie bien la dernière valeur du champ, mais qui ne fonctionne pas à priori lorsqu'on associe la condition SI en matricielle?
qu'en penses tu Michel?
crdlmnt
0
Bonjour Vaucluse,
après essai, cela me donne #valeur

par rapport à votre remaque, toutes mes cellules de la colonne AF (selection) sont remplies. En fonction de ce qu'il y a avant, si les sujets enregistrés dans les centres sont ensuite codés 0 ou 1, apparaîtra "selectionné(e)" dans ma colonne AF; sinon "non select". Les trous n'existeront que dans ma colonne AG (date d'inclusion) pour laquelle aucune date ne sera en face des "non select"...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 6/04/2011 à 14:18
..."Comme tous les inscrits dans les colonnes B ne seront pas forcément "inclus" dans mon étude, il y a donc quelques cellules de dates d'inclusion qui sont vides "...

Hé bin voila !!!! comme tu as des cellules vides dans les dates, la date mini est donc 0
essaies
MIN(SI((A1:A50=D2)*(B1:B50<>"");B1:B50))

La prochaine fois que tu demandes de l'aide,sois précis dans ta demande sans rien oublier (vides, autres feuilles etc) :o)

Pour ta formule Vaucluse, je ne vois pas le "nb.si(zone;0)" car si on a plusieurs 0 (vide?)...on va avoir 2,3,5... mais...
Michel
0
Michel,
oups pour les oublis de précision... la nouvelle formule me donne cette fois le 03/01/1900 (ne me demandes pas d'où Excel la sort).
Je ne vois pas d'autre solution que de joindre le fichier mais je ne sais pas comment faire :(
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
6 avril 2011 à 17:26
mettre le classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
http://cijoint.fr/
et coller le lien proposé dans le message de réponse
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 6/04/2011 à 19:50
Re Michel:
Le NB.SI(Zone;0)+1 ou NB.SI(Zone;"")+1 permet de définir le rang de PETITE.VALEUR tout de suite après le nombre de 0, c'est à dire le mini supérieur à 0 de la liste de nombre... Mais ça, pas dans le matriciel à priori.
en version simple, ça remplace à mon avis avantageusement MIN pour éviter d'afficher les valeurs 0, (déjà utilisé, ça marche)
Crdlmnt
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
6 avril 2011 à 17:52
OK, merci
Suis absent demain, donc si tu peux continuer...
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 6/04/2011 à 19:17
alors on attendra vendredi Michel,, car je n'arrive pas à mettre ce code en matricielle.
(je comptais sur toi,comme souvent)
bonne journée demain

pour fofi:
j'ai bien dit que ma proposition ne pouvait pas marcher en matricielle, du moins en l'état où je rentre la formule, et je ne trouve pas le libellé correct.

crdlmnt
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
Modifié par eriiic le 7/04/2011 à 11:02
Bonjour tout le monde,

La proposition de michel du post 8 devrait marcher (dans la mesure où le centre existe), je suis arrivé à la même :
=MIN(SI((ENR!B1:B50=A1*(ENR!AG1:AG50>0));ENR!AG1:AG50))
matricielle à valider par shift+ctrl+entrée

http://www.cijoint.fr/cjlink.php?file=cj201104/cij5wezonG.xls

eric
0
eriiiiiic!!
ça maaarche !!!
j'ai juste dû corriger ta formule car il y avait un petit bug de parenthèses:
=MIN(SI((ENR!B1:B50=A1)*(ENR!AG1:AG50>0);ENR!AG1:AG50))

Tjs aussi la même correction que pour Michel: tout comme je ne pouvais pas mettre D2 (dans son équation), je ne pouvais pas mettre A1 dans la tienne mais juste 1, 2, 3... jusqu'à mon 12e centre car les lignes ne commenceront pas forcément au même endroit...

mais merci merci merci merci à tous !!
Sophie
0