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 :

Compter des valeurs dans une plage nommée


Sujet :

Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 49
    Points
    49
    Par défaut Compter des valeurs dans une plage nommée
    Bonjour

    j'ai une plage de valeurs définie dans un nom.
    Je cherche le nombre de valeur dans le nom sur une ligne précise que je trouve grâce à EQUIV(G2;Noms).
    Or je ne vois pas comment faire un NBVAL en passant comme parmétre un nom ET un ligne pour combiner ligne DANS nom.

    Merci pour vos idées
    Fichiers attachés Fichiers attachés

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 140
    Points : 186
    Points
    186
    Par défaut
    Bonjour,

    Pas bien compris ce que tu cherches.

    S'il s'agit de compter le nombre de personnes différentes, cette solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((1/NB.SI(Noms;Noms))*1)
    Si pas ça, reviens avec plus de précisions en nous donnant notamment le résultat attendu par rapport ton exemple

    @+

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Si j'ai bien compris l'exemple, tu peux t'inspirer de ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NBVAL(DECALER(item;EQUIV("azd";Noms;0)-1;0;1))
    pour chercher le nombre de valeurs sur la plage H8:L8, plage qui est "calculée" suite à la recherche de "azd" dans la plage des noms...

    A toi d'adapter.

    Reviens si ce n'est pas cela ou si tu souhaites un complément d'infos.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 49
    Points
    49
    Par défaut
    Je reviens donc
    je vais expliquer ce que j'ai déjà fait et ce que je ne sais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(item;EQUIV(G2;Noms;0)-1;0;1;NBVAL(EQUIV(G2;Noms;0)+2;EQUIV(G2;Noms;0)+2))
    Je vais prendre point par point le DEALER

    mon décaler s'effectue sur la plage item ;
    le pointeur de ligne : renvoi le numéro de ligne précédente à la premiére apparition du mot en G2 (premiére liste déroulante) ;
    Aucune colonne ;
    Une ligne de hauteur ;
    Largeur de la sélection : nombre de valeur sur la ligne sélectionnée par EQUIV(G2;Noms;0).

    Or ici mon probléme est que je veux appliquer le dernier NBVAL à UNE ligne de l'ITEM !! et non pas à la ligne générale. C'est pour cette raison que la largeur que j'ai testé

    Code:
    NBVAL(EQUIV(G2;Noms;0)+2;EQUIV(G2;Noms;0)+2)malheuresement ne fonctionne pas.

    j'espére m'être bien exprimé et que vous aurez une idée !

  5. #5
    Membre averti Avatar de Tdeny
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 287
    Points : 311
    Points
    311
    Par défaut
    Salut,

    Je te mets ici la formule qui fait ça, sauf que ton tableau est un peu bordélique pour y arriver, car il se situe en page avec des lignes et colonnes vides dont il faut tenir compte.
    Et j'ai modifié la référence de Item pour y inclure les noms.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(INDIRECT(CONCATENER(ADRESSE(CTXT(EQUIV(G15;INDEX(item;;1);0)+3);COLONNES(item)+2);":";ADRESSE(CTXT(EQUIV(G15;INDEX(item;;1);0)+3);COLONNES(item)+6))))
    Vendez votre habileté et achetez l’ahurissement.
    L’habileté est seulement l’opinion, l’ahurissement l’intuition.
    Djalal–eddine Roumi

  6. #6
    Membre averti Avatar de Tdeny
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 287
    Points : 311
    Points
    311
    Par défaut
    Encore moi...

    Je fais toujours trop compliqué

    Il y a plus simple et sans besoin de modifier les références de Item.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(INDEX(item;EQUIV(G19;Noms;0);))
    Ça convient très bien et tu mets ton tableau où tu veux.
    Vendez votre habileté et achetez l’ahurissement.
    L’habileté est seulement l’opinion, l’ahurissement l’intuition.
    Djalal–eddine Roumi

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 49
    Points
    49
    Par défaut
    Merci Tdeny mais ce n'est pas du tout ce qui m'intéresse.

    Je ne désire pas faire une somme, je veux afficher dans la liste déroulante située en H2, les donnée de "item" qui sont sur la même ligne que la valeur de "Noms" explicitée en G2 !

    (je met en gras qu'on comprenne bien cette fumeuse histoire )

  8. #8
    Membre averti Avatar de Tdeny
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 287
    Points : 311
    Points
    311
    Par défaut
    Ah bon...

    Tu sélectionnes tes données, avec la ligne de stop car une liste a des entêtes, et demandes Données Liste, Créer une liste; ou Données Filtre, Filtre automatique, ce qui est mieux si tu as plusieurs fois les mêmes valeurs.

    Sera ce correct ?

    Sinon, tu revois ta macro.
    Vendez votre habileté et achetez l’ahurissement.
    L’habileté est seulement l’opinion, l’ahurissement l’intuition.
    Djalal–eddine Roumi

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 49
    Points
    49
    Par défaut
    J'ai pas tout compris, tu peux me la refaire ?!

  10. #10
    Membre averti Avatar de Tdeny
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 287
    Points : 311
    Points
    311
    Par défaut
    Ci-joint ton fichier modifié.
    Réenvoyé car erreur dans le 1er.
    L'étoile bleue vient de la création de liste, modifiée pour en faire un filtre automatique.
    Vendez votre habileté et achetez l’ahurissement.
    L’habileté est seulement l’opinion, l’ahurissement l’intuition.
    Djalal–eddine Roumi

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 49
    Points
    49
    Par défaut
    Heuuuu.. je vois pas trop ce que tu as fait à part rajouter une liste comprenant toutes les données.. ?!

  12. #12
    Membre averti Avatar de Tdeny
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 287
    Points : 311
    Points
    311
    Par défaut
    Revois au dessus Test1, modifié pour erreur de manipulation.
    Vendez votre habileté et achetez l’ahurissement.
    L’habileté est seulement l’opinion, l’ahurissement l’intuition.
    Djalal–eddine Roumi

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 49
    Points
    49
    Par défaut
    Autant pour moi je me suis mal exprimé, je parlais de liste de validation conditionnelle.

    Ici tu as juste mis les données en liste, ça j'ai le level !

    Mais ce que je veux, c'est dynamiser conditionnellement (que c'est bôôôôôôô) ma liste de validation en H2.

    Avec les conditions que j'ai exprimé dans les messages précédents.

    je veux afficher dans la liste de validation située en H2, les données de "item" qui sont sur la même ligne que la valeur de "Noms" explicitée en G2 !

  14. #14
    Membre averti Avatar de Tdeny
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 287
    Points : 311
    Points
    311
    Par défaut
    Je n'ai plus que ça à te proposer (fichier joint)
    Je fais dans macro, mais en JS seulement.

    PS Voir Noms, à gauche, sélection en F2
    Vendez votre habileté et achetez l’ahurissement.
    L’habileté est seulement l’opinion, l’ahurissement l’intuition.
    Djalal–eddine Roumi

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 49
    Points
    49
    Par défaut
    Ahhh on commence à en voir le bout !!

    Bon maintenant reste plus qu'à mettre le résultat dans une liste..
    Sauf que index renvoi UNE seule valeur en fonction d'une ligne et d'une colonne.. Donc impossible de renvoyer tout une plage de cellule !

    je vois plus trop comment faire..

    aurais tu une idée ?

    (on est pas loin là je le sens !!)

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 140
    Points : 186
    Points
    186
    Par défaut
    Bonjour,

    A force de décryptage, peut-être ceci (mais sans certitude), à mettre dans :

    Données - Validation - Liste - Source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(Noms;EQUIV(G2;Noms;0)-1;1;1;5)
    Formule basée sur le premier fichier joint.

    Si toujours pas ça, indique nous en fonction de ton fichier, quel contenu tu attends dans ta liste déroulante.

    Attention : dans ton fichier exemple, dans ta colonne Noms, tu as un doublon. La formule proposée ne pourra prendre en compte que le premier.

    @+

  17. #17
    Membre averti Avatar de Tdeny
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 287
    Points : 311
    Points
    311
    Par défaut
    Salut,

    Je ne sais pas si ça peut te convenir, mais tu peux faire un report autrepart.

    Voir fichier joint.
    Vendez votre habileté et achetez l’ahurissement.
    L’habileté est seulement l’opinion, l’ahurissement l’intuition.
    Djalal–eddine Roumi

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 49
    Points
    49
    Par défaut
    Je vois ce que tu as voulu faire, tu arrives au même résonnement que moi.
    SAUF (et oui il y a toujours un sauf) je veux que la lageur de la sélection du DECALER soit dynamique.
    Et c'est là où je veux en venir depuis le début, le moyen que je conçoit pour calculer dynamiquement le nombre de cellules occupées, c'est un NBVAL sur la ligne,, de la plage, que l'on est en train de traiter.

    Et c'est là où je bloque, comment faire pour indiquer un ligne dans une plage ?! (plus précisément sélectionner la plage correspondant à la ligne de la plage item)

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 140
    Points : 186
    Points
    186
    Par défaut
    re,

    Toujours sous réserve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(Noms;EQUIV(G2;Noms;0)-1;1;1;NBVAL(DECALER(Noms;EQUIV(G2;Noms;0)-1;1;1;5)))
    Je te laisse tester

    @+

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 49
    Points
    49
    Par défaut
    Magique !!
    Alors est-ce que tu peux expliquer en quelques phrase ton dernier NBVAL et comment tu l'as trouvé ?!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2003] Compter des valeurs dans une table
    Par jmde dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 13/11/2013, 19h50
  2. [XL-2007] Copier que les cellules avec des valeurs dans une plage.
    Par Fred4345 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 24/11/2011, 20h20
  3. Réponses: 5
    Dernier message: 12/07/2010, 14h45
  4. Compter des valeurs dans une StringGrid
    Par fermat dans le forum Delphi
    Réponses: 3
    Dernier message: 26/10/2006, 12h00
  5. [langage] compter des caracteres dans une chaine
    Par louisis dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2004, 22h39

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