Trouver une valeur dans une plage fluctuante

Résolu
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

  1. Contributeur
    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
    1. Merci Michel!
      J'aboutis au moins à une date mais il m'affiche celle du 1er janv 1900...
      0
    2. Contributeur
      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
    3. 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
    4. Contributeur
      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
  2. 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
    1. Contributeur
      ..."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
      1. 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
      2. Contributeur
        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
      3. Contributeur
        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
      4. Contributeur
        OK, merci
        Suis absent demain, donc si tu peux continuer...
        0
      5. Contributeur
        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
    2. Contributeur
      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
      1. 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