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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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. fofi
       
      Merci Michel!
      J'aboutis au moins à une date mais il m'affiche celle du 1er janv 1900...
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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. 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
    4. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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. 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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    ..."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. 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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      OK, merci
      Suis absent demain, donc si tu peux continuer...
      0
    5. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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. 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