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 :

Recherche et comptage multicritères complexe


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 69
    Points : 34
    Points
    34
    Par défaut Recherche et comptage multicritères complexe
    Bonjour,

    J'ai besoin de votre aide pour réaliser un comptage complexe.
    Le problème réside à dire si une valeur est égale à 1 ou 0,5 suivant une condition.

    ex :

    Sem Date type
    12 08-mars
    13 10-mars B
    13 10-mars T
    14 11-mars T
    14 12-mars B
    14 13-mars T
    14 13-mars T
    14 14-mars B

    J'ai besoin de compter pour une semaine combien il y a de jours différents et ça marche bien avec : {=NB(1/FREQUENCE(SI(sema=D45;valeur);SI(sema=D45;valeur)))} , ici SEM12=1, SEM13=1, SEM14=4

    Dans un second temps je voudrai compter les types par date en tenant compte de la semaine (ouille !!!!!)
    Un sommeprod pourrait m'aider mais j'ai une règle qui complique les choses :
    Si on constate un B seul pour une date, il est égale à 1
    Si on constate un B avec un T pour une date, il est égale à 0,5.

    Sur cet exemple ça donne :
    SEM13 = 0,5 B
    SEM14 = 2 B

    Il y a une combinaison de formule à trouver mais je sèche un peu pour le moment, donc si vous pouviez m'aider ce serait génial.

    Merci d'avance.

    Vincent.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    Je viens de voir une réponse à ta question (identique) sur un autre forum.
    Si cela ne te convient pas, fais signe, ou bien donne le lien pour ceux qui seraient intéressés par la solution à ta question.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 69
    Points : 34
    Points
    34
    Par défaut
    oui,

    pour l'instant la première solution trouvée par hoerwind (XLDnaute)
    consiste à ajouter une colonne (non imprimable) avec un test de ce type :
    =SI(D69<>"B";"";SI(SOMMEPROD((C$68:C$75=C69)*(D$68$75="T"))=0;1;0,5))

    et pour finir on reprend le comptage dans la bonne colonne (imprimable)
    =SOMME.SI(B$68:B$75;F68;A$68:A$75)

    L'idéal serait de compiler les formules pour n'en faire qu'une mais j'ai un doute sur le fait de faire une référence circulaire.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 69
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Je remonte se topic car il est toujours d'actualité, car je n'ai pas de solution totalement fonctionnelle.

    La solutions que j'avais parraissait fonctionner car le test effectué n'était basé que sur peu de données.
    Mais pour un jour donné, d'une semaine donnée, si une personne a fait de nombreuses visites et du bureau il y a un souci.
    Le résultat voulu de comptage serait que la journée de bureau soit comptabiliser comme 0,5, mais avec la formule actuelle (voir pièce jointe), mais au lieu de ça, elle est divisée par le nombre de visite+bureau d'ou chiffre à virgule.

    Autant regarder le fichier joint pour comprendre le probleme.

    Je cherche donc à adapter ma formule ou en trouver une autre pour faire ce comptage complexe.

    La solution d'une colonne masquée m'a déjà été proposé mais cela ne me va pas vraiment.

    En tout cas, merci d'avance si vous pouvez m'aider.

    Vincent.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 46
    Points : 49
    Points
    49
    Par défaut
    Bonsoir,

    En fait, le seul problème, c'est de calculer automatiquement le contenu de la colonne D, quitte à masquer ensuite la colonne si tu ne veux pas qu'elle apparaisse. Ensuite, calculer "NBR B" dans la colonne G ne pose plus de problème.
    Je te propose donc de vérifier le fichier joint. Dis-moi si ça te convient.

  6. #6
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    bonjour à tous

    2 solutions :

    1 - avec une plage nommée glissante et dynamique
    -------- Menu Insertion / Nom / Définir
    --------------- Nom de la plage : Maplage
    --------------- Fait référence à : Mettre la formule ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(Feuil1!$A$1;EQUIV(Feuil1!$F$1;Feuil1!$A:$A;FAUX)-1;1;NB.SI(Feuil1!$A:$A;Feuil1!$F$1);1)
    --------------- (en rouge, La cellule ou sera saisie la semaine demandée : ici F1)

    la formule en G1 sera : Formule matricielle à valider avec Ctrl + Maj + Entrée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(1/NB.SI(maplage;maplage))
    2 ème solution : avec une formule matricielle en G1, toujours en tenant compte que la cellule contenant la semaine est F1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(1/NB.SI(DECALER(Feuil1!$A$1;EQUIV(Feuil1!$F$1;Feuil1!$A:$A;FAUX)-1;1;NB.SI(Feuil1!$A:$A;Feuil1!$F$1);1);DECALER(Feuil1!$A$1;EQUIV(Feuil1!$F$1;Feuil1!$A:$A;FAUX)-1;1;NB.SI(Feuil1!$A:$A;Feuil1!$F$1);1)))
    personnellement je préfère la 1ère solution plus facilement modifiable.

    En fonction de ce que j'ai compris

    je regarde pour la 2ème question : mais le SommeProd doit aller à moins que nous n'ayons pas tous les critères....

    je viens de voir ton fichier lol, ton fichier en retour : ps 1/2 = 0,5 (la colonne D est inutile)
    Wilfried

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 69
    Points : 34
    Points
    34
    Par défaut
    Merci pour vos propositions.
    C'est quand même génial qu'on vous aide sur des trucs qui prennent grave la tête.

    Wilfried, tes solutions sont assez balèses pour mon niveau, je vais essayer de comprendre et voir si ça s'applique dans mon utilisation.

    La première solution ne devrait pas fonctionner car j'ai plus de données que sur l'exemple.
    Mon analyse se base sur un groupe d'une centaine de personnes avec pour chacun des stats à la semaine.
    Je dois donc faire des recherches et trouver les données correspondant à la personne et à la semaine suivant les codes B, T et d'autres....

    Je vais regarder la seconde formule et tenter de la comprendre.

    Merci beaucoup en tout cas.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 69
    Points : 34
    Points
    34
    Par défaut
    Re,

    je me permet de remonter ma question avec de nouvelles infos.

    Voir le fichier joint qui explique le probleme et à qu'elle étape j'en suis pour le résoudre.

    Merci d'avance pour votre aide.

    Vincent.
    Fichiers attachés Fichiers attachés

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 46
    Points : 49
    Points
    49
    Par défaut
    Avec les nouvelles conditions, une légère adaptation des formules de ma précédente version donne toujours les bons résultats. Il est beaucoup plus facile de calculer d'abord la valeur de B (0, 0.5 ou 1) pour chaque jour de la semaine que de tenter une formule générale qui peut peut-être être mise au point, mais qui est difficile à comprendre et à mettre à jour en cas de nouvelles contraintes.
    Enfin, c'est mon avis.
    La seule conséquence dans ma proposition est l'apparition d'une nouvelle colonne de données, qu'il suffit de masquer.
    Fichiers attachés Fichiers attachés

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 69
    Points : 34
    Points
    34
    Par défaut
    Merci pour ton aide.
    Mon problème par rapport à l'ajout de colonne c'est qu'en fait j'ai plusieurs données à mesurer comme le "B" donc il faudrait pratiquement 5 colonnes sup.

    Je vais continuer à creuser mais merci pour ta solution.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 46
    Points : 49
    Points
    49
    Par défaut
    En quoi cela est-il gênant ? Je ne comprends pas bien le problème. Avoir une, deux ou dix colonnes supplémentaires ne présente aucune gêne. On peut masquer toutes ces colonnes, elles n'apparaissent ensuite plus ni à l'écran, ni à l'impression. On fait souvent comme ça, quand on a besoin de calculs intermédiaires.
    Tiens, j'ai masqué la colonne en question dans le fichier joint.
    Fichiers attachés Fichiers attachés

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 69
    Points : 34
    Points
    34
    Par défaut
    Merci à vous tous pour votre aide.

    La solution était :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((SEM1=G16)*(TYPE1="B")*(COM1="MA")*1)-SOMMEPROD(((SEM1=G16)*(TYPE1="B")*(COM1="MA"))*(((DECALER(SEM1;1;;;)=G16)*(DECALER(TYPE1;1;;;)<>"B")*(DATE1=DECALER(DATE1;1;;;))*(DECALER(COM1;1;;;)="MA"))+((DECALER(SEM1;-1;;;)=G16)*(DECALER(TYPE1;-1;;;)<>"B")*(DATE1=DECALER(DATE1;-1;;;))*((DECALER(COM1;-1;;;)="MA")))*0,5))
    Merci à Jocelyn XLDnaute pour son aide.

    Salutations.

    Vincent.

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

Discussions similaires

  1. Recherche d'un WYSIWYG complexe
    Par manu f dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 02/08/2010, 15h21
  2. Requete avec comptage multicritère
    Par jeff_68 dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 07/01/2010, 19h38
  3. [AC-2003] recherche multi-critères(15) complexe
    Par DuracellSubaquatique dans le forum IHM
    Réponses: 6
    Dernier message: 18/09/2009, 08h36
  4. recherche dans une chaine complexe
    Par PAYASS59 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/09/2007, 11h55

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