Trouver une valeur dans une plage fluctuante

Résolu
fofi -  
 fofi -
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
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
fofi
 
Merci Michel!
J'aboutis au moins à une date mais il m'affiche celle du 1er janv 1900...
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
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
fofi
 
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   Statut Contributeur Dernière intervention   6 440
 
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
fofi
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
..."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
fofi
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
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   Statut Contributeur Dernière intervention   6 440
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
OK, merci
Suis absent demain, donc si tu peux continuer...
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 440
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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
fofi
 
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