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épartir les 10 meilleurs résultats par catégorie [XL-2010]


Sujet :

Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 20
    Par défaut Répartir les 10 meilleurs résultats par catégorie
    Bonjour,

    Dans une feuille Excel, je possède le tableau suivant :

    Nom : excel1.JPG
Affichages : 268
Taille : 40,1 Ko

    D'après ces données, je dois réaliser des tableaux de ce type :

    Nom : excel2.JPG
Affichages : 265
Taille : 22,2 KoNom : excel3.JPG
Affichages : 230
Taille : 36,0 Ko

    Pour l'instant, la méthode utilisée pour remplir les tableaux est de filtrer et trier manuellement les colonnes. Ensuite, parmi les 10 premières lignes, je regarde le nombre de femmes et d'hommes et je complète mes tableaux.

    Auriez-vous une méthode plus efficace à proposer, s'il vous plaît ? L'idée serait que ces tableaux se complètent tout seul via des formules.
    Je pensais utiliser GRANDE.VALEUR mais je ne sais pas comment l'utiliser pour compter le nombre de femmes et d'hommes. De plus, si je rajoute plusieurs condition à l'intérieur (par exemple, GRANDE.VALEUR(ET($E$3:$E$150 = "Nice" ; $F$3:$F$150 = "Carrefour") ; $H$3:$H$150), cela me renvoie 0. Je ne peux utiliser qu'une seule condition mais peut-être que cela est dû à une incompréhension de la formule.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut
    Bonjour,

    Pour l'exemple que vous donnez

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {=MAX(SI(E1:E150&F1:F150="Nice"&"Carrefour";H1:H150;""))}
    Cela va donner la plus grande valeur revenu d'une personne travaillant a Carrefour dans le secteur de Nice

    Pour avoir les {} vous tapez la formule et vous validez en faisant ctrl + shift +entrée (fonction matricielle)

    A vous de modifier pour rajouter tous les critères que vous voulez.. service, homme/femme

    Cordialement

  3. #3
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 20
    Par défaut
    Bonjour,

    Merci pour votre réponse. Cependant, je ne souhaite pas connaitre le montant du meilleur revenu. Ce que j'aimerais, c'est connaître combien il y a de femmes parmi les 10 meilleurs revenus par "catégorie" (donc par Ville, par entreprise, par ville et entreprise, etc...).

    N'hésitez pas à me dire si vous ne comprenez pas.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut
    Peut etre un début de réponse

    Imaginons que je souhaite connaitre le nombres de femmes dont le revenus est supérieur ou égales aux 10 premiers revenus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((D1:D150="F")*(H1:H150>=GRANDE.VALEUR(H1:H150;10)))

  5. #5
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 20
    Par défaut
    Oui, cela pourrait peut-être faire l'affaire. J'essayerai demain sur les vraies données.

    Par contre, pourriez-vous m'expliquer ce que fait cette formule, s'il vous plaît ?
    Notamment le (H1:H150>=GRANDE.VALEUR(H1:H150;5)) car pour moi, GRANDE.VALEUR(H1:H150;5) renvoie la 5ème plus grande valeur dans la plage H1:H150.

    Je vous remercie pour votre aide.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut
    (H1:H150>=GRANDE.VALEUR(H1:H150;5))
    La formule demande dans toute la rangée des revenus, celle qui sont supérieurs ou égales à la 5ieme valeur la plus grande, dans votre cas c'est 10 donc (H1:H150>=GRANDE.VALEUR(H1:H150;10))
    J'ai réfléchis à votre cas et voici la formule a testé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {=SOMMEPROD((D1:D150="F")*(E1:E150="Nice")*(F1:F150="Carrefour")*(H1:H150>=GRANDE.VALEUR(SI(E1:E150&F1:F150="Nice"&"Carrefour";H1:H150;"");10)))}
    Avec ceci, elle devrait vous indiquer le nombre de Femme dans les 10 premiers revenus à Nice dans le magasin de carrefour.
    Cette une formule matricielle, taper ctrl + shift + entrée pour valider

    A vous de modifier selon vos critères

  7. #7
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 20
    Par défaut
    Merci pour vos explications. Je comprends mieux maintenant.

    Concernant votre nouvelle proposition, je ne vois pas de 10 dans la formule. Du coup, comment la formule comprend-t-elle qu'elle doit regarder les 10 meilleurs revenus au Carrefour de Nice ?
    Si je comprends bien, je dois remplacer 3 par 10 ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut
    Exactement

  9. #9
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 20
    Par défaut
    Ok, super. Merci beaucoup pour votre aide précieuse. Je vais tester votre formule demain et vous tiendrai au courant.

    Très bonne soirée à vous.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut
    La formule peut donner une erreur comme "#NOMBRE!" , cela voudra dire ,que dans le tri que vous souhaitez faire, il y a moins de 10 valeurs de chaque critère.

    Exemple : il y a moins de 10 revenus global ; la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =GRANDE.VALEUR(H1:H150;10)
    va retourner l'erreur #NOMBRE car il n'y a pas de 10ieme valeur ...

    si cela vous arrive un jour il faudra modifier la formule , comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =GRANDE.VALEUR(H1:H150;LIGNE(INDIRECT("1:"&MIN(10;NB(H1:H150)))))
    qui va vous afficher la plus grande valeur meme s'il y a moins de 10 valeurs.

    Cordialement

  11. #11
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 20
    Par défaut
    Un très très très grand merci pour vous être penché sur mon problème.
    Merci également d'avoir pris du recul et d'avoir anticipé les éventuels problèmes que votre proposition pourrait généré.

    J'ai testé la proposition sans LIGNE et INDIRECT. Elle fonctionne bien tant que j'ai toujours au moins 10 revenus avec les critères demandés.

    Évidemment, comme vous l'avez anticipé, je n'ai pas toujours 10 revenus alors j'ai testé votre formule avec LIGNE et INDIRECT. Toutefois, je me retrouve tout de même avec #NOMBRE comme résultat.
    De ce que je comprends, LIGNE(INDIRECT("1:"&MIN(10;NB(H1:H150)))) doit renvoyer 10 si j'ai au moins 10 revenus. S'il y en a moins de 10, la formule va renvoyer le nombre de données concernées par les critères entrées dans SOMMEPROD. Cependant, je ne comprends pas comment la formule pourrait renvoyer ce résultat car MIN(10;NB(H1:H150)) va toujours renvoyer le nombre total de données dans la colonne H, quelque soit les critères spécifiés. Du coup, pourriez-vous me dire où se trouve mon erreur de raisonnement, s'il vous plaît ?

    En attendant, j'ai remplacé LIGNE(INDIRECT(...)) par un SOMMEPROD. Cela fonctionne mais est-ce la méthode la plus optimale ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut
    La formule avec INDIRECT va donner le résultat uniquement sur 1 seul critère.

    Cependant si avec sommeprod ca fonctionne c'est parfait. N'hésitez pas à poster la formule, ca pourra servir à une personne!

  13. #13
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 20
    Par défaut
    Oui, vous avez raison. Voici à quoi ressemble la formule que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((G:G="Nice")*(H:H="Carrefour")*(C:C="Femme")*(O:O>=GRANDE.VALEUR(SI(G:G&H:H="Nice"&"Carrefour";O:O;"");SOMMEPROD((G:G="Nice")*(H:H="Carrefour")))))
    Encore merci pour votre aide précieuse.

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

Discussions similaires

  1. Obtenir les 5 premiers résultats par catégorie
    Par FabFab9 dans le forum Requêtes
    Réponses: 7
    Dernier message: 06/01/2015, 14h58
  2. [SQL SERVER 2000] Extraire le meilleur résultat par magasin
    Par casavba dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/02/2008, 13h13
  3. [MySQL] Avoir les 50 premiers résultat par rapport à une recherche
    Par polemoss dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 30/11/2007, 11h42
  4. [MySQL] Afficher x résultats par catégorie
    Par lorange dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/09/2007, 01h14
  5. requète les 5 meilleurs résultats par catégorie
    Par Samcool dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 27/07/2007, 09h40

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