Calcul du nombre selon plusieurs conditions

Résolu/Fermé
excel_debutant Messages postés 49 Date d'inscription samedi 16 août 2014 Statut Membre Dernière intervention 5 mai 2016 - 5 mai 2016 à 16:58
 Excel_debutant - 7 mai 2016 à 08:26
Bonjour,

Merci en avance pour votre temps et aide concernant ma requite.

J'ai deux feuilles: Sheet1 et Sheet2
Dans la feuille: Sheet1

1. Ligne 4, on a les jours de la semaine : Dimanche - Samedi
2. Chaque de semaine comporte trois colonnes ( COMPTA, IT_FR et RH )
3. Dans la colonne A on a l'intervalle du temps travaillé


Dans la feuille : Sheet2
1. On a 3 colonnes : ID, Date & Heure, Type

Action à faire:
Créer une macro qui insere dans la feuille Sheet1et dans les cellules concernées le nombre de ID par jour selon les type (COMPTA, IT_FR, RH)

Manuellement J'ai mis les resultats du dimanche

J'ai essayé avec la formule ci-dessous et ca ne fonctionne pas
C7= NB.SI.ENS(Sheet2!C:C;"IT_FR";Sheet2!D:D;"=7";Sheet2!E:E;"<06:15:00")

Et meme si ca fonctionnait il faut faire la meme formule pour chaque cellule. Je me demandais si on pouvait avoir une macro.

Merci



Ci-joint le document: http://www.cjoint.com/c/FEfoZzIJtzO
A voir également:

9 réponses

Raymond PENTIER Messages postés 58667 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 27 septembre 2024 17 203
5 mai 2016 à 18:50
Bonjour.

Je regrette d'avoir à t'avouer que je n'ai pas compris ton fichier ...
Tu voudrais "Créer une macro qui indique dans la cellule concernée le nombre de ID par jour selon les type" : En fait on renseigne d'abord la feuille 'Sheet2', et la feuille 'Sheet1' doit se compléter ?
Quel code-jour as-tu choisi ? 7 représente le samedi ou le dimanche ?
Parce que si c'est le dimanche, j'aurais trouvé 7 occurrences en 'Sheet2', dont 1 en COMPTA, 2 en IT_FR et 4 en RH ...

Cordialement.
0
excel_debutant Messages postés 49 Date d'inscription samedi 16 août 2014 Statut Membre Dernière intervention 5 mai 2016 1
5 mai 2016 à 21:09
Bonjour Raymond,

Je voudrais te remercier pour ton temps et pour ton aide.

Dans la colonne D la formule WEEKDAY(B2,2) signifie que 7 est le dimanche, 1 lundi, 2 mardi, etc.

Pour le resume:
Parce que si c'est le dimanche, j'aurais trouvé 7 occurrences en 'Sheet2', dont 1 en COMPTA, 2 en IT_FR et 4 en RH ...

C'est une partie de ce que je veux. Maintenant que tu as trouvé :
1 en COMPTA, 2 en IT_FR et 4 en RH
Tu vas en Sheet1, et dans la colonne A, pour 1 en COMPTA, on mettra la valeur en B6 car le temps est compris entre 00h01 et 5h59,
2 en IT_FR , on mettra 2 dans la cellule C6 car le temps est compris entre 00h01 et 5h59. et 4 en RH 1 en D7 (le temps est compris entre 8:30 et 8:44:59) , 1 en D26 (le temps est compris entre 10:45 et 10:59:59) , 1 en D27 (le temps est compris entre 11:00 et 11:14:59) , 1 en D37.

et les autres cellule du dimanche on la valeur 0.

Ce principe d'applique pour les cellule du lundi , mardi , mercredi, etc.

En créant une marco avec un bouton qui va faire les differents filter en Sheet2 et inserer les valeur automatiquement en Sheet1
0
Raymond PENTIER Messages postés 58667 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 27 septembre 2024 17 203
5 mai 2016 à 21:24
Ah, bon !
Je n'y connais rien en macros ...

Mais ta colonne A ne sert à rien si elle contient du texte, comme en A6, A7, A8 et A63 !
D'ailleurs les cellules suivantes sont aussi inexploitables, si tu conserves le texte "6h30" au lieu de la valeur numérique (format Heure) 06:30 ...
0
excel_debutant Messages postés 49 Date d'inscription samedi 16 août 2014 Statut Membre Dernière intervention 5 mai 2016 1
5 mai 2016 à 21:32
Bonjour Raymond,

Toutes mes excuses, je ne pensais pas dire ca : Je n'y connais rien en macros ...

C'est vraiment grace à vous que j'apprends Excel et je vous en remercie.

Tu as effectivement raison la colonne A contient du texte. J'avais essyé de la mettre la valeur numérique mais je ne sais pas comment faire la macros. C'est ca mon problème.

Merci beaucoup Raymond
0
Raymond PENTIER Messages postés 58667 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 27 septembre 2024 17 203
5 mai 2016 à 21:36
Je n'ai pas été assez clair : ton problème devrait pouvoir se résoudre sans macro.
0

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

Posez votre question
excel_debutant Messages postés 49 Date d'inscription samedi 16 août 2014 Statut Membre Dernière intervention 5 mai 2016 1
5 mai 2016 à 21:51
Ah bon!! C'est dans ce cas une bonne chose. Pourrais tu m'aider dans ce cas la...

J'avais essayé avec
C7= NB.SI.ENS(Sheet2!C:C;"IT_FR";Sheet2!D:D;"=7";Sheet2!E:E;"<06:15:00")
Mais ca ne fonctionne pas. Et meme si ca fonctionnait, ikl faudrait la recopier et l'adapter pour toutes les cellules en Sheet1.

Merci beaucoup Raymond
0
Raymond PENTIER Messages postés 58667 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 27 septembre 2024 17 203
5 mai 2016 à 22:06
Déjà, remplace
"=7"
par 7

Ensuite tu auras 2 fois de données à adapter si tu remplaces les textes de la colonne A:A par des heures au format de cellule "Heure", comme je te l'ai déjà signalé ; ensuite à la place de
"<06:15:00"
tu mettras dans ta formule "<"&A8
0
excel_debutant Messages postés 49 Date d'inscription samedi 16 août 2014 Statut Membre Dernière intervention 5 mai 2016 1
5 mai 2016 à 22:28
Bonjour Raymond,

J'ai effectivement change la colonne A:A par le format HH:MM:SS
Aussi j'ai remplacer "=7" par 7
et "<06:15:00" par "<"&A8 mais j'ai toujours une erreur.
Ci-dessous la formule.

NB.SI.ENS(Sheet2!C:C;"IT_FR";Sheet2!D:D;7;Sheet2!E:E;"<"&A8)

Aussi je me demande comment mettre plusieurs conditions dans la formule NB.SI.ENS.
Par exemple pour la cellule C8 en sheet1, on doit mettre ;"<"&A9 mais aussi ;">="&A8


Merci ton aide Raymond
0
Raymond PENTIER Messages postés 58667 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 27 septembre 2024 17 203
6 mai 2016 à 02:41
Oh, là, là ! Tu m'as fait bosser, sur ce coup-là !
Mais enfin, j'y suis parvenu en fin de compte ...

Alors allons-y pour la colonne A :
1) En A6 saisir 00:00:01
2) En A7 saisir 06:06
3) En A8 saisir 06:15
4) Sélectionner A7:A8 et tirer la poignée vers le bas afin d'incrémenter par quart d'heure jusqu'en A63 (qui affichera 20:00)
5) En A64 saisir 23:59:59
Puis voyons la ligne 3 :
1) En B3, C3 et D3 saisir 7
2) En E3, F3, G3 saisir 1
3) En H3, I3, J3 saisir 2 et ainsi de suite jusqu'en T3, U3, V3 avec 6
Notre formule magique peut maintenant être écrite, en faisant très attention au caractère $ dont la présence nous permettra de recopier la formule de la cellule B6 dans tout le tableau B6:V64, les yeux fermés :
=NB.SI.ENS(Sheet2!$C:$C;B$5; Sheet2!$D:$D;B$3;
Sheet2!$E:$E;">="&$A6; Sheet2!$E:$E;"<"&$A7)

https://www.cjoint.com/c/FEgaKRo763K
J'ai ajouté une mise en forme conditionnelle pour ne pas afficher les zéros, mais ce n'est pas obligatoire ...
-------------------------------------------------------- Cordialement.
0
Excel_debutant
7 mai 2016 à 05:53
Bonjour Raymond,

Grand merci pour ce beau travail.
Je te remercie pour ton temps et ton aide .
Le problème est résolu.

J'ai une dernière question.
Je souhaite aussi avoir le nombre moyen de ID par jour par intervalle par type (RH, IT_Fr, Compta) avec aussi un global.

J'ai essayé avec Moyenne.si mais ça ne fonctionne pas

Merci beaucoup Raymond.
0
Raymond PENTIER Messages postés 58667 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 27 septembre 2024 17 203
7 mai 2016 à 06:34
Pourquoi compliquer ce qui peut se faire simplement ?
Moyenne intervalle 00:00/06:00 avec en W6 la formule =MOYENNE(B6:V6)
à recopier jusqu'en W64
Moyenne jour dimanche avec en B65 la formule =MOYENNE(B6:D64) ;
fusionner B65:D65 ; tirer vers la droite jusqu'en V65
Moyenne type RH avec en B66 la formule
=MOYENNE(D6:D64; G6:G64; J6:J64; M6:M64; P6:P64; S6:S64; V6:V64)
Moyenne type IT_FR avec en B67 la formule
=MOYENNE(C6:C64; F6:F64; I6:I64; L6:L64; O6:O64; R6:R64; U6:U64)
Moyenne type COMPTA avec en B68 la formule
=MOYENNE(B6:B64; E6:E64; H6:H64; K6:K64; N6:N64; Q6:Q64; T6:T64)
Moyenne générale avec en W68 la formule =MOYENNE(B6:V64)
https://www.cjoint.com/c/FEheHTR3c33
Salut.
0
Excel_debutant
7 mai 2016 à 08:26
Grand merci Raymond. Je vais mettre à résolu.
Excellente fin de semaine!
0