Nombre d'occurence de valeurs
Résolu/Fermé
kvjld35
Messages postés
22
Date d'inscription
jeudi 12 mai 2016
Statut
Membre
Dernière intervention
13 juin 2016
-
27 mai 2016 à 09:12
kvjld35 Messages postés 22 Date d'inscription jeudi 12 mai 2016 Statut Membre Dernière intervention 13 juin 2016 - 27 mai 2016 à 11:43
kvjld35 Messages postés 22 Date d'inscription jeudi 12 mai 2016 Statut Membre Dernière intervention 13 juin 2016 - 27 mai 2016 à 11:43
A voir également:
- Excel graphique nombre d'occurrence
- Liste déroulante excel - Guide
- Graphique excel - Guide
- Si et excel - Guide
- Changer carte graphique - Guide
- Aller à la ligne excel - Guide
3 réponses
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
27 mai 2016 à 10:43
27 mai 2016 à 10:43
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+
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
27 mai 2016 à 10:07
27 mai 2016 à 10:07
Bonjour,
par ex:
si Valeur=15 on va dans l'intervalle 12-15 ou 15-18 ?
par ex:
si Valeur=15 on va dans l'intervalle 12-15 ou 15-18 ?
kvjld35
Messages postés
22
Date d'inscription
jeudi 12 mai 2016
Statut
Membre
Dernière intervention
13 juin 2016
27 mai 2016 à 10:34
27 mai 2016 à 10:34
Dans l'intervalle 15-18, les valeurs max sont exclues je ne l'ai pas précisé pardon :-)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
>
kvjld35
Messages postés
22
Date d'inscription
jeudi 12 mai 2016
Statut
Membre
Dernière intervention
13 juin 2016
27 mai 2016 à 10:43
27 mai 2016 à 10:43
OK, merci
sois patient !
sois patient !
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 411
Modifié par Vaucluse le 27/05/2016 à 10:48
Modifié par Vaucluse le 27/05/2016 à 10:48
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!
kvjld35
Messages postés
22
Date d'inscription
jeudi 12 mai 2016
Statut
Membre
Dernière intervention
13 juin 2016
27 mai 2016 à 11:25
27 mai 2016 à 11:25
Bonjour Vaucluse,
La fonction NB.SI.ENS n'existe pas sous Excel 2003, je l'aurai simplement utilisé sinon :-)
Cordialement
La fonction NB.SI.ENS n'existe pas sous Excel 2003, je l'aurai simplement utilisé sinon :-)
Cordialement
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 411
Modifié par Vaucluse le 27/05/2016 à 11:35
Modifié par Vaucluse le 27/05/2016 à 11:35
fallait le dire :....enfin il aurait fallu que je le lise ;-))))
=SI(OU(B2="";C2="");"";SOMMEPROD(($A$2:$A$13>B2)*($A$2:$A$13<C2)))
crdlmnt
=SI(OU(B2="";C2="");"";SOMMEPROD(($A$2:$A$13>B2)*($A$2:$A$13<C2)))
crdlmnt
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
27 mai 2016 à 11:37
27 mai 2016 à 11:37
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
kvjld35
Messages postés
22
Date d'inscription
jeudi 12 mai 2016
Statut
Membre
Dernière intervention
13 juin 2016
27 mai 2016 à 11:43
27 mai 2016 à 11:43
Merci beaucoup, vos solutions sont top :-)
Non il y aura tout au plus plusieurs dizaines de lignes ça devrait aller.
Bonne continuation !
Non il y aura tout au plus plusieurs dizaines de lignes ça devrait aller.
Bonne continuation !
27 mai 2016 à 10:55
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.
27 mai 2016 à 11:26
Je te remercie pour ton aide et te souhaite une bonne continuation ! :-)