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 nombre de cellules sous plusieurs conditions [XL-2003]


Sujet :

Excel

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 67
    Points : 54
    Points
    54
    Par défaut Compter nombre de cellules sous plusieurs conditions
    Bonjour,


    Je cherche actuellement à compter le nombre de cellule sous plusieurs conditions. J'ai utilisé le COUNTIF traditionnel, mais je ne pense pas avoir la bonne syntaxe.

    Je l'utilise de la manière suivante : countif(plage de données, cond1*cond2*cond3)

    Dois-je procéder autrement (le sumproduct ne fonctionne pas puisqu'il fait une somme de données tandis que,dans mon cas, je ne souhaite avoir que le nombre de fois où TOUTES mes conditions sont réunies)

    Avez-vous une petite idée pour m'aider svp?


    Merci d'avance


    Coklin

  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,

    Contrairement à ce que tu penses, c'est bien la fonction SUMPRODUCT qu'il faut employer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SUMPRODUCT((cond1)*(cond2)*(cond3))
    Elle renverra le nombre de lignes qui répondent aux 3 conditions

    Si cela ne fonctionne pas, mets un petit exemple ou extrait de ton fichier en pièce jointe, ce sera plus facile pour te montrer comment faire

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 67
    Points : 54
    Points
    54
    Par défaut
    Bonjour Ullan,


    Merci pour ta réponse, mais je ne pense pas que le sumproduct soit adapté à la situation. Détrompe moi si tel n'est pas le cas. Pour cela, je vais te préciser un peu plus ce que je veux faire.


    J'ai une feuille où se trouvent des données. J'ai les jours (format date, heure) en dans la colonne A et les volumes en colonne B. Ce que je souhaite c'est compter le nombre de jours où le volume est inférieur à 5millions, compris entre 5 et 20M et supérieur à 20M dans un mois choisi dans une liste déroulante.

    La difficulté, c'est que mes jours sont regroupés par bloc, i.e que les jours identiques sont tous ensemble et dès qu'on change de jours, une ligne blanche sépare le jour de la veille et celui d'aujourd'hui. Voici une sorte d'exemple, car je ne peux pas joindre mon fichier.

    l'unité est le millier
    09-sep-09, 10:00 3,000
    09-sep-09, 10:01 1,000

    10-sep-09, 11:30 50,000
    10-sep-09 14:00 3,0000

    Je veux donc qu'il me retourne dans un tableau:
    nbj < 5,000 = 1
    nbj >= 5,000 et < 20,000 = 0
    nbj >=20,000 = 1

    Suis-je assez clair?


    Merci d'avance pour votre aide.

    Coklin

  4. #4
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Petite question avant de plancher sur ton cas...
    Que ce passe t'il si une date répond à deux conditions?
    Est- il possible d'avoir pour une même date un montant >=20.000 et compris entre 5.000 et 20.000 ?
    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 67
    Points : 54
    Points
    54
    Par défaut
    Salut,


    Pour répondre à ta question, ce n'est pas possible dans le sens où je suis censé faire une somme des volumes quotidiens pour savoir dans quel intervalle de volume le jour se situe.

    Ainsi, le 10-sep-09 dans mon exemple représente 53M et pas 50M d'un côté et 3M de l'autre.

    Vois-tu comment faire cela sans passer par les macros?


    Merci de ton aide,


    Coklin

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 67
    Points : 54
    Points
    54
    Par défaut
    Autre précision utile:

    l'utilisateur choisi aussi l'année du mois concerné de telle sorte qu'il n'existe qu'une date dans le mois et pas deux 10 sep qui seraient dûs à 2008 et 2009.

    Ai-je bien répondu à ta question?

    Coklin

  7. #7
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Ha oui, mais alors non
    Donc si j'ai bien compris, si dans ton exemple, pour le 09/09 tu as une ligne à 3M et une autre à aussi 3M, le 09/09 tombre dans la deuxième condition (>=5M et <20M).
    Du coup une formule ça va être plus chaud...faut que je réfléchisse un peu...
    Par contre si tu n'est pas contre le VBA ce sera plus facile, d'autant que le nombre de ligne risque de varier d'un mois à l'autre, non ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 67
    Points : 54
    Points
    54
    Par défaut
    Exactement,

    Le nombre lignes varie et pour ce qui est du >5M c'est cela également. Je pense pouvoir le faire en VBA mais je voulais voir s'il était possible de le faire avec des formules.

    Je dois ensuite générer un camembert avec des stats en % .

    J'ai déjà pensé à quelques trucs. Notamment, pour qu'il reconnaisse que c'est le même jour que la ligne du dessus de lui dire de vérifier si la ligne d'avant ou celle d'après est égale, dans ces cas là il somme.

    Autre chose compliqué : j'ai plusieurs produits que je peux choisir pour voir la stat. La colonne choisie pour faire la recherche change en fonction du titre sélectionné. J'ai réussi à trouver un moyen pour qu'il sélectionne la bonne colonne, mais la suite est plus costaud.

    Voici mon idée pour l'instant:
    Faire un tableau avec tous les jours d'un mois et lui faire faire un sumproduct du type :
    (Year(plage de données) = année choisie)*(pareil pour le mois)*(pareil pour le jour) et faire ensuite un countif.

    Ce serait la solution la plus envisageable, non?

    Merci encore pour ton aide,

    Coklin

  9. #9
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Re,
    Je te suis pour VBA, par contre pour "gérer" les dates je ferais autrement, via des boucles limitées au dates choisies, regarde l'exemple ci-dessous.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Sub SommeDate()
     
    Dim DateMin As Date, DateMax As Date, i As Date
    Dim MaPlage As Range, cel As Range
    Dim j As Long, MaSum As Long, Cond1 As Long, Cond2 As Long, Cond3 As Long
     
    'pour l'exemple j'ai mis des dates de A2 à A9
    DateMin = Application.Min(Sheets("sheet1").Range("a2:a9"))
    DateMax = Application.Max(Sheets("sheet1").Range("a2:a9"))
    Set MaPlage = Sheets("sheet1").Range("a2:a9")
     
    For i = DateMin To DateMax
        For Each cel In MaPlage
            If cel.Value = i Then MaSum = MaSum + cel.Offset(0, 2).Value 'Pour l'exemple les données sont en C donc décallage de 2 à droite.
        Next cel
     
    If MaSum < 5000 Then
        Cond1 = Cond1 + 1
    Else:
        If MaSum > 20000 Then
            Cond3 = Cond3 + 1
        Else:
            Cond2 = Cond2 + 1
        End If
    End If
     
    MaSum = 0
     
    Next i
     
    Cells(2, 5) = Cond1
    Cells(3, 5) = Cond2
    Cells(4, 5) = Cond3
     
    End Sub
    Je te laisse voir si c'est adaptable à ton cas...

    A+

    P.S. Si j'ai la super idée de formule, je te le fait savoir

  10. #10
    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,

    Le premier problème est que les dates ne sont pas des dates, puisque certaines sont séparées des heures par une virgule, d'autres pas.
    Le second problème est qu'il me semble que les dates sont en anglais, puisque l'abréviation française de septembre est "sept" et non "sep".
    Le troisième problème est qu'une comparaison de dates n'est pas aisée puisque ces dates sont suivies d'heures.

    La première chose à faire est de transformer, dans une colonne intermédiaire, les dates existantes en dates reconnues par excel, sans les heures.

    D'après les réponses précedentes, j'hésite quant à la compréhension de la question.
    Tu souhaites bien le nombre de dates qui répondent à une catégorie, par exemple > 5,000 et non à quelle catégorie appartient une date précise ?

    Si tu mettais un petit exemple un peu plus élaboré en pièce jointe, avec la ou les réponses que tu souhaites obtenir, ce serait plus facile pour t'aider.

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 67
    Points : 54
    Points
    54
    Par défaut
    Merci Ullan pour ton aide,


    J'ai réussi à trouver un moyen sans à passer par VBA. J'ai fait un tableau intermédiaire avec tous les jours ouvrés du mois choisi et faire un sumproduct avec comme condition (entre autres) que le jour du volume (day()) corresponde au jour du tableau dans lequel je veux exporter cette donnée.


    Dès lors, j'ai un tableau avec tous les jours du mois et tous les volumes en fonction des jours.

    J'utilise ensuite cette donnée pour faire un autre sumproduct en fonction des conditions de volumes (<5,000 ou >5000 et <20000, etc.)

    Vois-tu ce que je veux dire. Seul hic, EXCEL 2003 galère pas mal à recalculer les cellules car j'ai mis beaucoup de fonction dans mon classeur.


    Merci quand même pour ta disponibilité et par ailleurs je garde ton programme dans un coin car il pourra tjrs me servir.


    Bonne aprem et bon week end.


    Coklin

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

Discussions similaires

  1. [Toutes versions] compter nombre de cellules sous deux conditions
    Par javiste dans le forum Excel
    Réponses: 2
    Dernier message: 14/10/2014, 18h17
  2. [XL-2007] Nombre de valeurs avec plusieurs conditions
    Par catetesse dans le forum Excel
    Réponses: 4
    Dernier message: 01/09/2011, 11h21
  3. Nombre de cellule Si 2 conditions sur deux plages
    Par CNANJO dans le forum Excel
    Réponses: 1
    Dernier message: 24/12/2008, 07h17
  4. Recherche nombre de cellule avec une condition
    Par solorac dans le forum Excel
    Réponses: 6
    Dernier message: 23/08/2007, 23h44
  5. Somme sous plusieurs conditions
    Par neeux dans le forum Excel
    Réponses: 5
    Dernier message: 04/07/2007, 14h53

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