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 :

Appliquer une double condition à une formule


Sujet :

Excel

  1. #1
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut Appliquer une double condition à une formule
    Bonjour,

    je fais appel à votre aide et conseil afin de m'aider sur une formule ou méthode...

    Voici le contexte : En fonction d'un nombre de retard et de durée, j'aimerais appliquer une pénalité.

    Voici le tableau des pénalités :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Durées Retards	         de 2 à 4 Retards	De 5 à 7 Retards	De 8 à 10 Retards	Plus de 10 Retards
    Moins de 20 Minutes	       4 000	                        8 000	            12 000	                     16 000
    De 20 à 40 Minutes	       8 000	                        12 000	            16 000	                     20 000
    De 41 minutes à 1h	     12 000	                        16 000	            20 000	                     24 000
    De 1h01 à 1h30	            16 000	                        20 000	            24 000	                     28 000
    Plus de 1h30	           28 000	                        28 000	            28 000	                     28 000

    Désole pour le léger décalage dans le tableau.

    Le but est le suivant :


    je voudrais appliquer une pénalité à un montant de base X, par exemple, si j'ai sur ma période entre 5 et 7 retards pour une durée totale de 1h20, j'applique la pénalité des 20 000.

    J'ai beau chercher et me creuser, mais j'avoue que je bloque, et je ne souhaite pas passer par du VBA...

    Par avance merci de votre aide.

    je suis sur Excel 2007 :-/
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  2. #2
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    c'est l'exemple typique de la recherchev avec comme valeur proche à vrai et ou le N° de colonne est la valeur de la cellule qui contient ton nombre de retard avec des si imbriqués pour defineir le delta à ajouter

    je vais faire un exemple que je vais te poster

    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Premièrement, il va falloir modifier ta première colonne pour y mettre une valeur numérique indiquant un temps "borne".
    Idem pour la première ligne.

    Une fois que tu auras fait ça, tu pourras utiliser une fonction INDEX() sur tes données (hors entêtes) utilisant comme valeurs d'index (paramètres 2 et 3) le résultat de fonctions EQUIV() recherchant respectivement dans ta première colonne et ta première ligne les valeurs souhaitées.
    En fonction des valeurs de bornes que tu auras placées, il faudra utiliser la valeur 1 ou -1 pour le troisième paramètre de EQUIV().
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par Igloobel Voir le message
    Bonjour,

    c'est l'exemple typique de la recherchev avec comme valeur proche à vrai et ou le N° de colonne est la valeur de la cellule qui contient ton nombre de retard avec des si imbriqués pour defineir le delta à ajouter

    je vais faire un exemple que je vais te poster

    A+
    Bonjour,

    merci.
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  5. #5
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    chose promise chose due

    RechercheV.xlsx

    Ps : C'est vrai que l'on peut passé par index comme Menhir te l'indique () mais c'est tellement un cas d'école concernant RECHERCHEV que j'ai pas pu résister

    @ pierre24

    si tu as des questions n'hésites pas

    et je te certifie que cela marche sur 2010 - 2007 - 2003 (peut-être même avant) et surement après

    tu testes

    puis tu dis ce que tu en penses


    A bientôt
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  6. #6
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Premièrement, il va falloir modifier ta première colonne pour y mettre une valeur numérique indiquant un temps "borne".
    Idem pour la première ligne.

    Une fois que tu auras fait ça, tu pourras utiliser une fonction INDEX() sur tes données (hors entêtes) utilisant comme valeurs d'index (paramètres 2 et 3) le résultat de fonctions EQUIV() recherchant respectivement dans ta première colonne et ta première ligne les valeurs souhaitées.
    En fonction des valeurs de bornes que tu auras placées, il faudra utiliser la valeur 1 ou -1 pour le troisième paramètre de EQUIV().
    Bonjour et merci.

    mettons donc en ligne mes valeurs au centième, soit 0.33, 0.67, 1, 1.5, 100. Comme cela si j'ai un retard de 4.17 heures par exemple, la fonction equiv doit me retourner 5, étant la 5ième ligne du tableau Ceci étant, ça ne fonctionne pas !

    Sur le paramètre de la formule, il faut préciser si supérieur, inférieur ou exact. Dans mon cas, je dois jouer avec les inférieur ou supérieur ?
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  7. #7
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par Igloobel Voir le message
    chose promise chose due

    RechercheV.xlsx

    Ps : C'est vrai que l'on peut passé par index comme Menhir te l'indique () mais c'est tellement un cas d'école concernant RECHERCHEV que j'ai pas pu résister

    @ pierre24

    si tu as des questions n'hésites pas

    et je te certifie que cela marche sur 2010 - 2007 - 2003 (peut-être même avant) et surement après

    tu testes

    puis tu dis ce que tu en penses


    A bientôt
    Merci !!! C'est parfait, j'ai adapté cette version à mon code notamment en ajoutant l'argument VRAI à la fonction RECHERCHEV.

    Je connaîtrai cette méthode pour les fois prochaines.

    En ce qui concerne INDEX et EQUIV, cela n'a pas fonctionné :-/

    A bientôt
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par pierre24 Voir le message
    mettons donc en ligne mes valeurs au centième, soit 0.33, 0.67, 1, 1.5, 100. Comme cela si j'ai un retard de 4.17 heures par exemple, la fonction equiv doit me retourner 5, étant la 5ième ligne du tableau Ceci étant, ça ne fonctionne pas !
    Si tu ne montres ni ta formule, ni la modification faite sur les entêtes, ni ce que tu entends pas "ça ne fonctionne pas", il va être difficile de savoir ce que tu as fait de travers et le corriger.

    Sur le paramètre de la formule, il faut préciser si supérieur, inférieur ou exact. Dans mon cas, je dois jouer avec les inférieur ou supérieur ?
    Ca dépend si dans tes cellule tu as mis la valeur supérieure ou inférieure de la plage.

    Mais comme il n'y a que deux possibilités, je pense que tu auras plus vite fait à faire le test par toi-même qu'à poser la question.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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