Nb de ligne répondant à un critère par mois

occhibelli Messages postés 3 Statut Membre -  
 Occhibelli -
Bonjour,
C'est la première fois que je teste ce forum.
Voici ce que je souhaite obtenir :
J'ai un tableau excel venant d'une requète MS QUERY
Les lignes de ce tableau sont des travaux réalisés.
Les colonnes qui m'interessent sont celles des sociétés et de la date de fin de travaux.
Je voudrais pouvoir sortir l'ensemble des travaux (donc compter les lignes) pour une société donnée durant un mois donné.
La seule façon que j'ai trouvé de compter les lignes par mois est celle-ci :
=NB.SI(P:P;">=01/01/2008")-NB.SI(P:P;">=31/01/2008")
et pour compter les lignes de l'équipe X, j'ai :
=NB.SI(I:I;"=X")
et maintenant j'aimerais avoir le nombre de ligne de X pour le mois de janvier.
Pourriez-vous m'aider?
Merci
A voir également:

12 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjur,
essaies:
=sommeprod((I1:I2000="X")*(P1:P2000>=01/01/2008)*(P1:P2000<=31/01/08)*1)

1/non testé (je crains une vach.. au niveau des dates
2/ sommeprod n'admet pas de colonnes entières
3/ attention à MS query, si à l'actualisation le nombre de lignes est inférieur: mettre les cette formule dans un autre onglet

Cordialement,
Michel

edit 12:10: d'où vient la source avec MSquery? si c'est access, il faut peut-être mettre les dates entre guillemets
0
occhibelli Messages postés 3 Statut Membre
 
Merci pour la formule,
j'ai essayé de l'insérer dans mon tableau mais le résultat donné est '0' pourtant ce n'est pas le résultat attendu.
J'ai changé la formule car je vais chercher les infos dans une autre feuille du même document;
=SOMMEPROD((equipe!I1:I40000="X")*(equipe!P1:P40000>=1/1/2008)*(equipe!P1:P40000<=31/1/8)*1)
La source de MS QUERY est une base ORACLE;
Je ne comprends pas la troisième remarque, est-ce que cela veut dire que la formule ne fonctionnera pas si certaines lignes sont vides?
En tout cas merci pour le temps que tu m'as accordé.
0
occhibelli Messages postés 3 Statut Membre
 
Avec une partie de la formule, cela fonctionne,
si je prends
SOMMEPROD((equipe!I1:I40000="X")*(equipe!P1:P40000>=1/1/2008)*1)
ou
SOMMEPROD((equipe!I1:I40000="X")*(equipe!P1:P40 000<=31/1/8)*1)
j'obtiens bien le résultat lié à ces formules par contre dès que je mets la condition 2 et 3 ensemble, cela me donne 0...
HELP !
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonsoir,

voilà ce que j'ai fait en désespoir de cause (je chrche depuis 3/4 heure...)

sur ma maquette (zone A1:B10)j'ai mis la date de fin en F2 et la date de début en E2

=SOMMEPROD((A1:A10="X")*(B1:B10<=F2)*(B1:B10>E2))

et ca marche; pourquoi? bin chaispas!!!

A te lire

Michel
0

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

Posez votre question
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Re,

Que je suis C...

Si on veut l'équipe X du mois de janvier

=SOMMEPROD((A1:A10="X")*(MOIS(B1:B10)=1))

Bonne soirée
0
occhibelli
 
Je te remercie de prendre de ton temps pour mon problème,
La formule ne fonctionne pas, je l'ai changé pour l'adapté à mon besoin :
=SOMMEPROD((equipe!I1:I35630="X")*(MOIS(equipe!P1:P35630)=1)) au début j'avais mis I;I et P;P mais il me mettait #NOMBRE donc je l'ai changé en ce qui est écris mais il me met maintenant #VALEUR...
De plus, dans mon tableau, j'ai différentes dates en janvier (2004, 2005, 2006, 2007, 2008) donc cette formule risque de me remonter l'ensemble des mois de janvier de toutes ces années?
Sais -tu s'il existe une formule du genre MOISANNEE()=1;1?
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Je regarderai ce soir ou demain;
j'utilise office 2000/ xp
ma maquette fonctionnait (c'est chez moi et je suis au boulot)
Il serait intéressant que tu mettes un extrait de ton classeur (quelques lignes sans données confidentielles) en Pièce jointe en utilisant le site www.cjoint.com

A+
Michel
0
occhibelli
 
Rebonjour,
Je pense que la formule ne fonctionne pas avec un fichier qui se met à jour et avec des dates. Du coup j'ai changé mon approche, j'ai utilisé MOIS() et ANNEE() sur la colonne date à côté du tableau puis j'ai utilisé cette formule
=SOMMEPROD((equipe!$I$1:$I$15000="X")*(equipe!$Q$1:$Q$15000=1)*(equipe!$R$1:$R$15000=2008))
pour ressortir le nombre de X au mois de janvier 2008.
https://www.cjoint.com/?curNaIrx56
Merci de ton aide.
A+
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour,

J'ai eu une erreur 404 sur ton lien cjoint...

A+
0
Occhibelli
 
Voici le lien, j'espère que cette fois cela va fonctionner.
https://www.cjoint.com/?cvoEiUMh6e
0
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
Salut,

Question bete, prouquoi ne pas utiliser MS QUERY et faire un count() ds ta base Oracle ????
genre :
select month(date fin de travaux), société, count(travaux)
where [date fin de travaux] >= 01/01/2008
and [date fin de travaux] <= 31/12/2008
group by month(date fin de travaux), société

Tom
0
xkristi Messages postés 4336 Date d'inscription   Statut Membre Dernière intervention   564
 
Salut !
Pour n'avoir aucun problème de date
je crée 2 colonnes supplémentaire l'une pour l'année , l'autre pour le mois
annee mois
20/02/2008 2008 2
=ANNEE(A2) =MOIS(A2)
recopie incrémentée sur toutes les lignes

et ensuite tu peux faire ce que tu veux ...
les tableaux croisés dynamiques offrent plein de possibilités

note que ton lien ne fonctionne pas !!!

0
Occhibelli
 
Merci à vous trois,
je laisse tomber le lien vers mon fichier,
mais je garde les idées et j'essayerai de m'en sortir avec.
Bonne après-midi à Michel, à tompols et à xkristi.
0