[Résolu] Calcul selon deux critères

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
DaveGarver
Fraîchement OOthentifié
Messages : 8
Inscription : 27 mars 2020 08:29

[Résolu] Calcul selon deux critères

Message par DaveGarver »

Bonjour,
Mon projet: planning mensuel, de personnels, établi par semaine.

Je désire, en bout de chaque ligne "personnel" afficher le nombre de weekend(samedi/dimanche) de repos obtenu par chaque personnel par mois.
Les repos sont affichés en vert et indique le numéro de semaine.

J'ai essayé avec différentes fonctions, mais je n'arrive pas à conditionner mon résultat au fait que j'ai 2 critères à prendre en compte. La date samedi/dimanche
et les repos en vert qui tombent sur ces deux jours.https://forum.openoffice.org/fr/forum/p ... e=post&f=4#

Meri de votre aide.

Cordialement
PS: le fichier joint représente seulement le mois de mars, mais je dois faire toute l'année.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
libreoffice 6.4, win64
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: Calcul selon deux critères

Message par zeguedon »

Bonsoir,

si j'ai bien compris, ligne 12 et à propager vers le bas :

Code : Tout sélectionner

=SOMMEPROD(ESTNUM(B12:AQ12);(JOURSEM($B$7:$AQ$7;2)>5);MOIS($B$7:$AQ$7)=3)/2
DaveGarver a écrit :le fichier joint représente seulement le mois de mars
Février et avril aussi. Et il y a un soucis avec tes dates ligne 7. Regarde les une à une avec précision tu constateras qu'en plein milieu du mois de mars tu as des dates en 02 par exemple(de la colonne Z à AJ tes dates affichent février :? ). Donc du coup dans la formule, pour ne compter que le mois de mars, il faut corriger le fichier et utiliser :

Code : Tout sélectionner

MOIS($B$7:$AQ$7)=3
ou 3 peux être remplacé par la référence à une cellule qui contient 3. Cela permet d'étirer la formule vers la droite pour obtenir le résulta de chaque mois.
@+
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
DaveGarver
Fraîchement OOthentifié
Messages : 8
Inscription : 27 mars 2020 08:29

Re: Calcul selon deux critères

Message par DaveGarver »

Bonjour Zeguedon et merci pour ta réponse.

J’ai bien corrigé les problèmes de dates.
Par contre, pourrais-tu m’expliquer l’histoire du 3?
« ou 3 peux être remplacé par la référence à une cellule qui contient 3. Cela permet d'étirer la formule vers la droite pour obtenir le résulta de chaque mois. »
pourquoi ce 3 et dans quelle cellule...au hazard?

J’ai essayé en mettant 3 dans une cellule et j’ai refait ta formule avec la réf de cette cellule à la place du 3

Code : Tout sélectionner

=SOMMEPROD(ESTNUM(B12:AQ12);(JOURSEM($B$7:$AQ$7;2)>5);MOIS($B$7:$AQ$7)=$AR$7)/2
et j’obtiens des résultats à virgule!!! 1,5 ou 2,5 parfois!

Quel est la partie qui vérifie que le personnel est en repos? (en vert sur le planning)

Ne comprenant pas totalement ta formule, je me suis peut être planté!
Mais j’ai bien vérifié chaque terme de ta formule… c’est bizarre.

Merci
Dernière modification par micmac le 21 mars 2021 14:56, modifié 1 fois.
Raison : Formule balisée pour une meilleure lecture
libreoffice 6.4, win64
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: Calcul selon deux critères

Message par zeguedon »

Bonjour,
DaveGarver a écrit :Quel est la partie qui vérifie que le personnel est en repos? (en vert sur le planning)

Code : Tout sélectionner

=SOMMEPROD(ESTNUM(B12:AQ12)....
DaveGarver a écrit :Les repos sont affichés en vert et indique le numéro de semaine.
je déduis donc qu'une valeur numérique correspond à un jour de repos. Les autres cellules contiennent du texte ou rien. La partie ESTNUM(B12:AQ12) retourne VRAI (donc 1) à chaque fois qu'une cellule de la plage est numérique.
La partie JOURSEM($B$7:$AQ$7;2)>5 retourne VRAI si le jour de la semaine (ligne 7) et un samedi ou un dimanche. SOMMEPROD() se charge de compter les cas qui correspondent aux 2 critères en même temps.
DaveGarver a écrit :le fichier joint représente seulement le mois de mars, mais je dois faire toute l'année.
[...]Par contre, pourrais-tu m’expliquer l’histoire du 3?
« ou 3 peux être remplacé par la référence à une cellule qui contient 3. Cela permet d'étirer la formule vers la droite pour obtenir le résulta de chaque mois. »
pourquoi ce 3 et dans quelle cellule...au hazard?
La valeur 3 associée à la fonction MOIS() permet de ne compter que pour le mois de mars. Car ton fichier va de février à avril. Mais ça on laisse tomber puisque tu veux compter pour toute l'année.
DaveGarver a écrit :j’obtiens des résultats à virgule!!! 1,5 ou 2,5 parfois!
Faudrait montrer ce que tu as fait pour en arriver là et après on pourra dire pourquoi. La raison la plus probable est que certains repos ne se pas positionnés sur l'ensemble du week-end. Par exemple dimanche et lundi ou vendredi et samedi. Ce qui n'était jamais le cas dans ton exemple. Si c'est ça, il faut retravailler la formule pour qu'elle ne prenne en compte que les week-end complet. Merci de préciser ou de montrer ce que tu as fait.@+
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
Avatar de l’utilisateur
Michel JANZEF
ManitOOu
ManitOOu
Messages : 3453
Inscription : 12 janv. 2006 10:04

Re: Calcul selon deux critères

Message par Michel JANZEF »

Bonjour,
DaveGarver a écrit :...J’ai essayé en mettant 3 dans une cellule et j’ai refait ta formule avec la réf de cette cellule à la place du 3

Code : Tout sélectionner

=SOMMEPROD(ESTNUM(B12:AQ12);(JOURSEM($B$7:$AQ$7;2)>5);MOIS($B$7:$AQ$7)=$AR$7)/2
et j’obtiens des résultats à virgule!!! 1,5 ou 2,5 parfois!...
Il manque le signe $ devant le B de B12 et le AQ de AQ12, ce qui fait que si vous recopiez votre formule vers la droite, la référence de la cellule s'incrémente à chaque fois. Il faut une référence absolue pour la colonne.
La formule doit donc s'écrire :

Code : Tout sélectionner

=SOMMEPROD(ESTNUM($B12:$AQ12);(JOURSEM($B$7:$AQ$7;2)>5);MOIS($B$7:$AQ$7)=$AR$7)/2
AOo 4.1.15 et LibO 7.6.6.3 (x64) - Windows 10 Famille 22H2 (19045.3693) 64 bits
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: Calcul selon deux critères

Message par zeguedon »

Michel JANZEF a écrit :Il manque le signe $ devant le B de B12 et le AQ de AQ12, ce qui fait que si vous recopiez votre formule vers la droite, la référence de la cellule s'incrémente à chaque fois.
Bien vu :super: :bravo:
et dans ce cas le $AR$7 se doit d'être un AR$7 puisqu'il doit s'incrémenter vers la droite :) @+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
Avatar de l’utilisateur
Michel JANZEF
ManitOOu
ManitOOu
Messages : 3453
Inscription : 12 janv. 2006 10:04

Re: Calcul selon deux critères

Message par Michel JANZEF »

zeguedon a écrit :...et dans ce cas le $AR$7 se doit d'être un AR$7 puisqu'il doit s'incrémenter vers la droite :) @+
:bravo: Pas bien les yeux en face des trous aujourd'hui :!:
AOo 4.1.15 et LibO 7.6.6.3 (x64) - Windows 10 Famille 22H2 (19045.3693) 64 bits