Sommeprod avec filtre Excel

Résolu
gunbafo Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -  
gunbafo Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite réaliser un comptage de données selon 2 contraintes de filtre:
- une période de temps qui varie (via userform cf. pièce jointe)
- un critère de sélection

Je n'arrive pas à réaliser une unique formule (avec un =Sommeprod) et je n'ai pas trouvé de problème identique sur d'autres post du forum.
J'ai créer un exemple représentatif de ce que je veux réaliser sur des données confidentiel (c'est pour le boulot).

Merci de traiter sur le fichier joint:
http://www.cijoint.fr/cjlink.php?file=cj201101/cijcZqV2JJ.xls

Merci pour votre aide à tous.


7 réponses

Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Salut le fotum

Essaye en C5 à recopier vers la droite
=SOMMEPROD(($J$5:$J$19>=$B$1)*($J$5:$J$19<=$B$2)*(K5:K19="x"))

Mytå
0
gunbafo Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   3
 
Merci Myta,

La formule que tu me donnes marche parfaitement pour la période de temps annuelle et Semestre 2 mais pas pour les Semestre 1.
Je retrouve les résultats de l'année (le critère *($J$5:$J$19<=$B$2)* n'est pas fonctionnel!!!

Saurais tu pourquoi?

Merci de ton aide
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Juste au passage :
.- Dans les cellules B1 et B2 utilisez le même format de date !
Le choix année donne les date 01.01.2010 au 31.12.2010 / correct
Le choix semestre 1 donne : 01.01.2010 au 30.06.2010 / correct
Le semestre 2 donne : 07.1.2010 au 31.12.2010 / la date 07.01.2010 devrait être 01.07.2010
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonsoir
curieux, je viens de tester la formule et je trouve qu'elle fonctionne bien quelque soit les dates limites.
par exemple: en K de 1/1/2010 à30/6/2010 je trouve 2 en histoire, 0 en géo, 2 en français et 2 en math?

êtes vous sur d'être sur les bonnes dates en B1 et B2 (surtout les bonnes années)

le problème doit être au niveau du bouton car la formule marche si on entre 30/6 en manuel, mais ne marche plus si on utilise le bouton
crdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

La formule de Myta est bonne mais ta macro est fausse car les dates en B2 sont du texte (fais un essai avec esttexte(B2)

en fait une date en VBa est saisie entre # et écrite au format anglophone mm/dd/yyyy; la restitution sur la feuille sera sous la forme fr jj/mm/aaaa
B& est en nombre car dd/mm eet mm/dd sont compatible (jour <13)

If Statistiques.OptionButton2.Value = True Then
     Range("B1") = #1/1/2010#
    Range("B2") = #6/30/2010#
End If


remarque: je n'ai pas ton compris ton
Range("B1").End(xlUp).Offset(0, 0).Select

qui me semble inutile

Vloila, c'est très rare que Myta se trompe
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Re le forum

Mon format de date étant aaaa-mm-jj, les valeurs affichées pour les dates en B1 et B2
du 2010-07-01
au 31/12/2010

2010-07-01 (Format Date)
31/12/2010 (Format Texte)

Mytå
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour gunbafo,
Note : c'est uniquement la date du début du deuxième trimestre qui est mal transmise par la procédure vous avez 07.01.2010 au lieu de 01.07.2010 (comme je l'ai déjà mentionné au poste 3).
Eh bien voila, dans votre procédure [Private Sub CommandButton1_Click()] vous utilisez cette notation est le problème sera réglé.

Statistiques sur l'année :
Range("B1") = CDate("1/1/2010")
Range("B2") = CDate("31/12/2010")

Statistiques sur le Semestre 1' :
Range("B1") = CDate("1/1/2010")
Range("B2") = CDate("30/6/2010")

Statistiques sur le Semestre 2' :
Range("B1") = CDate("1/7/2010")
Range("B2") = CDate("31/12/2010")

Salutations.
Le Pingou
0
gunbafo Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   3
 
Oui Vaucluse je pense que le problème venait du bouton.

En fait j'ai contourné le problème en paramétrant que 3 dates: 01/01/2010 - 01/07/2010 - 01/01/2011 dans la macro du bouton.
de cette façon et en enlevant le = dans la formule Sommepro($J$5:$J$19>$B$1)* la formule marche bien.

Merci à vous
0