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 :

Réduction d'une formule


Sujet :

Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Réduction d'une formule
    Salut à tous
    j'aimerais simplifier ma formule ci dessous ( qui fonctionne mais je pense qu on peut faire plus court....) .Celle ci me permet d'avoir une moyenne general d'un ensemble de different nettoyage (en%), par exemple la cellule P9 à P11 , si le temps est inferieur ou égal à 3h , le systeme comptabilise.Tout ce qui est en P à donc une limite de 3 (T<4;H<3;L<2) je pense qu il y a possibilité de regrouper ceci ? je pensais un truc du style nb.si(P9: P11;P17: P19;P25 : P27;P33: P35;"<=3") mais ça ne fonctionne pas... idem pour regrouper "la division" NB...
    Merci pour votre aide

    =(NB.SI(P9: P11;"<=3")+NB.SI(T9:T11;"<=4")+NB.SI(L9:L11;"<=2")+NB.SI(H9:H11;"<=3")+NB.SI(H17:H19;"<=3")+NB.SI(L17:L19;"<=2")+NB.SI(P17: P19;"<=3")+NB.SI(T17:T19;"<=4")+NB.SI(H25:H27;"<=3")+NB.SI(L25:L27;"<=2")+NB.SI(P25: P27;"<=3")+NB.SI(T25:T27;"<=4")+NB.SI(H33:H35;"<=3")+NB.SI(L33:L35;"<=2")+NB.SI(P33: P35;"<=3")+NB.SI(T33:T35;"<=4")+NB.SI(H41:H43;"<=3")+NB.SI(L41:L43;"<=2")+NB.SI(P41: P43;"<=3")+NB.SI(T41:T43;"<=4"))/(NB(H17:H19)+NB(L17:L19)+NB(P17: P19)+NB(T17:T19)+NB(H9:H11)+NB(L9:L11)+NB(P9: P11)+NB(T9:T11)+NB(H25:H27)+NB(L25:L27)+NB(P25: P27)+NB(T25:T27)+NB(H33:H35)+NB(L33:L35)+NB(P33: P35)+NB(T33:T35)+NB(H41:H43)+NB(L41:L43)+NB(P41: P43)+NB(T41:T43))

  2. #2
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Bonjour,

    Voilà la formule que je propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    =SOMMEPROD( (MOD((LIGNE(H9:T45)-1);8)<3)
              * ( ((COLONNE(H9:T45)=8) + (COLONNE(H9:T45)=16)) * (H9:T45<=3)
                 +(COLONNE(H9:T45)=12)*(H9:T45<=2)
                 +(COLONNE(H9:T45)=20)*H9:T45<=4)))
    /NB( H9:H11; L9:L11; P9:P11; T9:T11;H17:H19;L17:L19;P17:P19;T17:T19;
        H25:H27;L25:L27;P25:P27;T25:T27;H33:H35;L33:L35;P33:P35;T33:T35;
        H41:H43;L41:L43;P41:P43;T41:T43)
    Un peu d'explications...

    Tout d'abord, la fonction NB() permet les plages disjointes, on peut donc écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    NB( H9:H11; L9:L11; P9:P11; T9:T11;H17:H19;L17:L19;P17:P19;T17:T19;
       H25:H27;L25:L27;P25:P27;T25:T27;H33:H35;L33:L35;P33:P35;T33:T35;
       H41:H43;L41:L43;P41:P43;T41:T43)
    Ensuite, pour la partie NB.SI(), la fonction SOMMEPROD() est plus puissante.
    On va travailler sur la plage H9:T45 puis appliquer des filtre pour sélectionner les blocs intéressants, qui sont répartis de manière régulière.

    Les blocs sont de 3 lignes toutes les 8 lignes, ce qui donne la première partie de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (MOD((LIGNE(H9:T45)-1);8)<3)
    On va multiplier cette première partie avec le reste, pour faire un "et" logique.

    Pour les colonnes, en position 8 et 16 on a pour critère <=3, en position 12 le critère est <=2 et en position 20 on a pour critère <=4.
    Pour la colonne 20, on écrit donc colonne = 20 ET valeur <=4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (COLONNE(H9:T45)=20)*H9:T45<=4)
    Pour la colonne 12, colonne = 12 ET valeur <=2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (COLONNE(H9:T45)=12)*(H9:T45<=2)
    Et enfin pour les colonnes 8 et 16, ( colonne = 8 OU colonne = 16 ) ET valeur <=3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    * ( ((COLONNE(H9:T45)=8) + (COLONNE(H9:T45)=16)) * (H9:T45<=3)
                 +(COLONNE(H9:T45)=12)*(H9:T45<=2)
                 +(COLONNE(H9:T45)=20)*H9:T45<=4)))
    Et voilà... bon courage pour la digestion !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    projet tps nettoyage.xls

    Pas encore eu le temps de "manger" ta formule... mais je t envoie mon fichier , le point concerné est "résultat général"

    merci pour ta réponse

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/04/2005, 15h40
  2. Réponses: 6
    Dernier message: 18/01/2005, 16h24
  3. Déterminer Algo pour une formule mathématique
    Par jekyll_omiwane dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 07/01/2005, 18h28
  4. Mauvais résultat aprés une formule de calcul complexe
    Par poufouille dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/12/2004, 00h12
  5. problème de guillemets dans une formule shell
    Par dim_italia dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/08/2003, 12h46

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