IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Valeur la plus petite selon conditions et sans formule matricielle


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2011
    Messages : 46
    Points : 39
    Points
    39
    Par défaut Valeur la plus petite selon conditions et sans formule matricielle
    Bonjour,

    Voilà plusieurs jours que je trime pour trouver une solution à mon problème sans y parvenir.
    Peut-être que vous pourriez me donner un coup de main.

    J'ai une feuille contenant des données (entre autres : pays et date).
    Je voudrais, pour chaque pays, chercher la première date supérieure ou égale à 2000 ainsi que la dernière date, sachant que je ne peux pas trier mes données !

    Pour le moment, je parviens à mes fins avec une formule matricielle. Ayant un très grand nombre de données, le temps de calcul d'Excel est beaucoup trop élevé et j'aimerais trouver une alternative avec un formule simple.

    J'avais envisagé d'utiliser les fonctions PETITE.VALEUR, INDEX, EQUIV et NB.SI mais je n'arrive pas à trouver la combinaison qui convient.

    Quelqu'un aurait-il une idée ?

    Je vous joins un fichier démo pour illustrer tout ça !

    Merci merci.

    Hélixe.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Bonjour,

    A mon avis tu dois passer par une colonne intermédiaire où tu mets par ex en J2
    Et en K2, tu cherches le MIN

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    468
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 468
    Points : 744
    Points
    744
    Par défaut
    Bonjour,

    Ton problème ne viens pas de l'utilisation de formules matricielles mais de cette aberration qui consiste a utiliser des colonnes entières (+ de 1 million de cellules) lorsque on utilise quelques dizaines ou centaines de lignes.

    Nommes "Pays" la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER($A$2;;;NBVAL($A:$A))
    "Date"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER($B$2;;;NBVAL($A:$A))
    puis utilises les noms dans tes formules matricielles.
    Le calcul est alors instantané.

    A+

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2011
    Messages : 46
    Points : 39
    Points
    39
    Par défaut
    Bonsoir, merci pour vos réponses !

    QuestVba : Ta solution fonctionne mais il me faudrait alors une colonne intermédiaire par pays, chose que je ne peux absolument pas faire.

    GeraldCalc : Effectivement je n'avais pas pensé que l'utilisation des colonnes entière puisse prendre plus de temps. Le fait est que je n'ai pas une dizaine ni une centaine de ligne mais quelques milliers. Cela dit, je vais limiter la plage à 3000 lignes, ce sera toujours ça de pris !

    J'ai essayé ta méthode mais je ne vois pas comment utiliser les deux formules dans mes formules matricielles.
    J'ai essayé comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {=MIN(SI((Pays=E11)*(Date>=2000);B:B))}
    mais la formule Pays renvoyant "Italie" et la formule Date renvoyant "1994", je ne vois pas bien comment elles pourraient s'adapter à mes 6 pays.

  5. #5
    Invité
    Invité(e)
    Par défaut Si tu n’es pas contre les macros !
    Bonjour,
    essais ce code sur une longue liste.
    Fichiers attachés Fichiers attachés

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2011
    Messages : 46
    Points : 39
    Points
    39
    Par défaut
    Merci ! Ca marche très bien.
    En attendant je m'étais limité à 3000 lignes plutôt qu'à la colonne entière comme l'a suggéré GérardCalc, ça fonctionnait mieux.

    Encore merci à tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/01/2015, 14h05
  2. Listbox : de la valeur la plus petite à la plus élevée
    Par xtecpasteque dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/07/2012, 09h18
  3. [2008] Changement de valeur d'une colonne selon condition
    Par jubourbon dans le forum SSIS
    Réponses: 3
    Dernier message: 08/03/2012, 18h14
  4. [Débutant] Retenir valeurs d'un vecteur selon conditions
    Par tita88 dans le forum MATLAB
    Réponses: 23
    Dernier message: 24/05/2011, 19h19
  5. Selection d'une Valeur si plus petite
    Par Jimy6000 dans le forum Excel
    Réponses: 2
    Dernier message: 15/02/2008, 12h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo