Nombre d'occurence de valeurs
Résolu
kvjld35
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
kvjld35 Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
kvjld35 Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je travaille actuellement sur un projet en VBA et je rencontre une difficulté que je n'arrive pas à résoudre. Je précise que je travaille sous Excel 2003 (Et oui..).
J'ai dans une première colonne une plage de valeurs de longueur variable.
Dans les deux colonne suivantes je définis des intervalles de valeurs avec un min et un max. Je voudrais alors que ma macro me dise combien de valeurs parmi la plage dans la 1ere colonne appartiennent à chaque classe. Par exemple ici combien de valeurs sont comprises entre 9 et 12, puis entre 12 et 15 etc..
Je ne trouve pas de fonctions ou de commandes adaptées.
decal freq rej [MHz]
9 Min max
23
45 9 12
55 12 15
22 15 18
12 18 21
54 21 24
32
28
33
12
44
Merci d'avance à tous pour le temps que vous prendrez à me répondre !
Je travaille actuellement sur un projet en VBA et je rencontre une difficulté que je n'arrive pas à résoudre. Je précise que je travaille sous Excel 2003 (Et oui..).
J'ai dans une première colonne une plage de valeurs de longueur variable.
Dans les deux colonne suivantes je définis des intervalles de valeurs avec un min et un max. Je voudrais alors que ma macro me dise combien de valeurs parmi la plage dans la 1ere colonne appartiennent à chaque classe. Par exemple ici combien de valeurs sont comprises entre 9 et 12, puis entre 12 et 15 etc..
Je ne trouve pas de fonctions ou de commandes adaptées.
decal freq rej [MHz]
9 Min max
23
45 9 12
55 12 15
22 15 18
12 18 21
54 21 24
32
28
33
12
44
Merci d'avance à tous pour le temps que vous prendrez à me répondre !
A voir également:
- Excel graphique nombre d'occurrence
- Liste déroulante excel - Guide
- Nombre de jours entre deux dates excel - Guide
- Changer carte graphique - Guide
- Graphique camembert excel - Guide
- Word et excel gratuit - Guide
3 réponses
Bonjour,
Avec Excel 2003, tu ne peux pas utiliser la fonction NB.SI.ENS (ou la méthode WorksheetFunction.CountIfs avec VBA).
Par contre, tu peux utiliser SOMMEPROD dans une formule Excel :
=SOMMEPROD(($A$2:$A$13>=B2)*($A$2:$A$13<C2)*1)
Ou avec VBA :
A+
Avec Excel 2003, tu ne peux pas utiliser la fonction NB.SI.ENS (ou la méthode WorksheetFunction.CountIfs avec VBA).
Par contre, tu peux utiliser SOMMEPROD dans une formule Excel :
=SOMMEPROD(($A$2:$A$13>=B2)*($A$2:$A$13<C2)*1)
Ou avec VBA :
Sub Test()
Dim PlageS As Range, Nb As Range, Cel As Range
Set PlageS = Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
Set Nb = Range("D2:D" & Range("B" & Rows.Count).End(xlUp).Row)
For Each Cel In Nb
Cel.Formula = Evaluate("SUMPRODUCT((" & PlageS.Address & ">=" & Cel.Offset(, -2).Address & ")*(" & PlageS.Address & "<" & Cel.Offset(, -1).Address & ")*1)")
Next Cel
End Sub
A+
Bonjour
vous avez sans doute vos raisons pour souhaiter une macro, mais une simple formule répond à la question
si on reporte votre tableau en A2:C13
il suffit de tirer à partir de D2:
=SI(OU(B2="";C2="");"";NB.SI.ENS($A$2:$A$13;">"&B2;$A$2:$A$13;"<"&C2))
crdlmnt
La qualité de la réponse dépend surtout de la clarté de la question, merci!
vous avez sans doute vos raisons pour souhaiter une macro, mais une simple formule répond à la question
si on reporte votre tableau en A2:C13
il suffit de tirer à partir de D2:
=SI(OU(B2="";C2="");"";NB.SI.ENS($A$2:$A$13;">"&B2;$A$2:$A$13;"<"&C2))
crdlmnt
La qualité de la réponse dépend surtout de la clarté de la question, merci!
une solution macro + classique pour peu de lignes...
https://www.cjoint.com/c/FEBjHE7upct
mais en remplaçant nb.si.ens proposé par Vaucluse par sommeprod, ce serait Ok
mais si il y a plusieurs milliers de lignes il faudrait passer par une autre méthode en VBA car sommeprod est lent sur de grandes listes
https://www.cjoint.com/c/FEBjHE7upct
mais en remplaçant nb.si.ens proposé par Vaucluse par sommeprod, ce serait Ok
mais si il y a plusieurs milliers de lignes il faudrait passer par une autre méthode en VBA car sommeprod est lent sur de grandes listes
J'ai du mal à comprendre toutes les instructions de ton code mais je vais tenter de le comprendre et de l'adapter à mon programme.
Je te tiens au courant.
Je te remercie pour ton aide et te souhaite une bonne continuation ! :-)