C'est la première fois que je viens poser une question sur les news; par
conséquent, je ne connais pas tous les usages.
J'aimerais savoir s'il existe une formule permettant de calculer une
différence entre 2 dates mais en tenant compte des jours fériés et des
diamnches (comme en compta pour les congés payés).
Exemple : Du lundi 05/12/05 au Dimanche 11/12/05 = 6 jours (et non 7 dans
l'absolu)
Du Lundi 11/07/05 au Dimanche 17/07/05 = 5 jours (-1 pour le
dimanche et -1 pour le jours férié)
-B1 contient la date de début, B2 la date de fin -Férié est un champ nommé qui contient la liste des jours fériés
Il faut cocher Outils/Macro complémentaire/Util analyse pour accéder à cette fonction
Cordialement JB
AV
| Mais une autre question me vient : les jours ouvrés sont au nombre de 5 | pour Excel, mais si les salariés travaillent tous les jours de la | semaine (6 ou même 7 jours comme dans le tourisme par exemple), comment | peut-on automatiser le calcul tout de même ?
Ne pas utiliser la fonction de l'utilitaire d'analyse mais l'une des ces formules matricielles (validation par ctrl+maj+entrée) Avec plages nommées "Début", "Fin" et "Jrf"
Les jours travaillés sans les samedis, dimanches et fériés : =SOMME((JOURSEM(LIGNE(INDIRECT(Début&":"&Fin));2)<6)*ESTNA(EQUIV(LIGNE(INDIRECT(Début&":"&Fin));jrf;0)))
Les jours travaillés sans les dimanches et fériés : =SOMME((JOURSEM(LIGNE(INDIRECT(Début&":"&Fin)))>1)*ESTNA(EQUIV(LIGNE(INDIRECT(Début&":"&Fin));jrf;0)))
Les jours travaillés sans les jours fériés fériés : =SOMME(ESTNA(EQUIV(LIGNE(INDIRECT(Début&":"&Fin));jrf;0))*1)
Les jours travaillés =Fin-Début
AV
| Mais une autre question me vient : les jours ouvrés sont au nombre de 5
| pour Excel, mais si les salariés travaillent tous les jours de la
| semaine (6 ou même 7 jours comme dans le tourisme par exemple), comment
| peut-on automatiser le calcul tout de même ?
Ne pas utiliser la fonction de l'utilitaire d'analyse mais l'une des ces
formules matricielles (validation par ctrl+maj+entrée)
Avec plages nommées "Début", "Fin" et "Jrf"
Les jours travaillés sans les samedis, dimanches et fériés :
=SOMME((JOURSEM(LIGNE(INDIRECT(Début&":"&Fin));2)<6)*ESTNA(EQUIV(LIGNE(INDIRECT(Début&":"&Fin));jrf;0)))
Les jours travaillés sans les dimanches et fériés :
=SOMME((JOURSEM(LIGNE(INDIRECT(Début&":"&Fin)))>1)*ESTNA(EQUIV(LIGNE(INDIRECT(Début&":"&Fin));jrf;0)))
Les jours travaillés sans les jours fériés fériés :
=SOMME(ESTNA(EQUIV(LIGNE(INDIRECT(Début&":"&Fin));jrf;0))*1)
| Mais une autre question me vient : les jours ouvrés sont au nombre de 5 | pour Excel, mais si les salariés travaillent tous les jours de la | semaine (6 ou même 7 jours comme dans le tourisme par exemple), comment | peut-on automatiser le calcul tout de même ?
Ne pas utiliser la fonction de l'utilitaire d'analyse mais l'une des ces formules matricielles (validation par ctrl+maj+entrée) Avec plages nommées "Début", "Fin" et "Jrf"
Les jours travaillés sans les samedis, dimanches et fériés : =SOMME((JOURSEM(LIGNE(INDIRECT(Début&":"&Fin));2)<6)*ESTNA(EQUIV(LIGNE(INDIRECT(Début&":"&Fin));jrf;0)))
Les jours travaillés sans les dimanches et fériés : =SOMME((JOURSEM(LIGNE(INDIRECT(Début&":"&Fin)))>1)*ESTNA(EQUIV(LIGNE(INDIRECT(Début&":"&Fin));jrf;0)))
Les jours travaillés sans les jours fériés fériés : =SOMME(ESTNA(EQUIV(LIGNE(INDIRECT(Début&":"&Fin));jrf;0))*1)
Les jours travaillés =Fin-Début
AV
BigMama
Bonsoir, Si Miniminou comprend tout c'est une pro! POur ma part mes connaissances sont trop limités et j'aimerais plus de détail sur le fonctionnement de la formule. Par avance Merci et pardon pour ma nullité BIgMama
Miniminou est tout fraîchement reformaté et boosté et je lis AV qui nous dit :
Ne pas utiliser la fonction de l'utilitaire d'analyse mais l'une des ces formules matricielles (validation par ctrl+maj+entrée)
Je vais étudier ça, merci beaucoup. -- /____/ / / - > O O < - - o -
v < Cath :-)
Bonsoir,
Si Miniminou comprend tout c'est une pro! POur ma part mes connaissances
sont trop limités et j'aimerais plus de détail sur le fonctionnement de la
formule.
Par avance Merci et pardon pour ma nullité
BIgMama
Miniminou est tout fraîchement reformaté et boosté et je lis AV qui nous
dit :
Ne pas utiliser la fonction de l'utilitaire d'analyse mais l'une des ces
formules matricielles (validation par ctrl+maj+entrée)
Je vais étudier ça, merci beaucoup.
--
/____/
/ /
- > O O < -
- o -
Bonsoir, Si Miniminou comprend tout c'est une pro! POur ma part mes connaissances sont trop limités et j'aimerais plus de détail sur le fonctionnement de la formule. Par avance Merci et pardon pour ma nullité BIgMama
Miniminou est tout fraîchement reformaté et boosté et je lis AV qui nous dit :
Ne pas utiliser la fonction de l'utilitaire d'analyse mais l'une des ces formules matricielles (validation par ctrl+maj+entrée)
Je vais étudier ça, merci beaucoup. -- /____/ / / - > O O < - - o -
v < Cath :-)
JB
Bonjour,
A B 1 Date début Date fin 2 01/01/2006 29/01/2006
PJ http://cjoint.com/?bekWGba7yC
-Une date est un nb de jours / 1er janv 1900 (38718 pour 1er janv 2006) -NB.SI(champ;condition) permet de compter le nb de cellules du champ qui vérifient la condition -Joursem(date;2) donne le jour de la semaine (1,2,3,4,5,6,7)
¢&":"&B2 représente une adresse de champ: 38718:38746
=INDIRECT(A2&":"&B2) représente un champ de 29 cellules
=LIGNE(INDIRECT(A2&":"&B2) donne un VECTEUR avec les numéros de lignes de ce champ, i.e. les dates entre 1er janv et 29 janv
=JOURSEM(LIGNE(INDIRECT(A2&":"&B2));2)<6 représente un VECTEUR avec Vrai si les dates ne sont pas un samedi ni un dimanche
=NB.SI(férié;LIGNE(INDIRECT(A2&":"&B2)))=0 représente un VECTEUR avec Faux si les jours ont étés trouvés dans la table nommée Férié
=(JOURSEM(LIGNE(INDIRECT(A2&":"&B2));2)<6)*(NB.SI(férié;LIGNE(INDIREC T(A2&":"&B2)))=0) est la multiplication (cellule à cellule) des 2 vecteurs: On obtient 0 1 1 1 1 1 0 0 1 1 1 ...
Il ne reste plus qu'à additionner les cellules du vecteur avec Sommeprod (ou Somme en validant avec Maj+Ctrl+entrée)
Cordialement JB
Bonjour,
A B
1 Date début Date fin
2 01/01/2006 29/01/2006
PJ http://cjoint.com/?bekWGba7yC
-Une date est un nb de jours / 1er janv 1900 (38718 pour 1er janv
2006)
-NB.SI(champ;condition) permet de compter le nb de cellules du champ
qui vérifient la condition
-Joursem(date;2) donne le jour de la semaine (1,2,3,4,5,6,7)
=A2&":"&B2 représente une adresse de champ: 38718:38746
=INDIRECT(A2&":"&B2) représente un champ de 29 cellules
=LIGNE(INDIRECT(A2&":"&B2) donne un VECTEUR avec les numéros de lignes
de ce champ, i.e. les dates entre 1er janv et 29 janv
=JOURSEM(LIGNE(INDIRECT(A2&":"&B2));2)<6 représente un VECTEUR avec
Vrai si les dates ne sont pas un samedi ni un dimanche
=NB.SI(férié;LIGNE(INDIRECT(A2&":"&B2)))=0 représente un VECTEUR
avec Faux si les jours ont étés trouvés dans la table nommée
Férié
=(JOURSEM(LIGNE(INDIRECT(A2&":"&B2));2)<6)*(NB.SI(férié;LIGNE(INDIREC T(A2&":"&B2)))=0)
est la multiplication (cellule à cellule) des 2 vecteurs: On obtient 0
1 1 1 1 1 0 0 1 1 1 ...
Il ne reste plus qu'à additionner les cellules du vecteur avec
Sommeprod (ou Somme en validant avec Maj+Ctrl+entrée)
-Une date est un nb de jours / 1er janv 1900 (38718 pour 1er janv 2006) -NB.SI(champ;condition) permet de compter le nb de cellules du champ qui vérifient la condition -Joursem(date;2) donne le jour de la semaine (1,2,3,4,5,6,7)
¢&":"&B2 représente une adresse de champ: 38718:38746
=INDIRECT(A2&":"&B2) représente un champ de 29 cellules
=LIGNE(INDIRECT(A2&":"&B2) donne un VECTEUR avec les numéros de lignes de ce champ, i.e. les dates entre 1er janv et 29 janv
=JOURSEM(LIGNE(INDIRECT(A2&":"&B2));2)<6 représente un VECTEUR avec Vrai si les dates ne sont pas un samedi ni un dimanche
=NB.SI(férié;LIGNE(INDIRECT(A2&":"&B2)))=0 représente un VECTEUR avec Faux si les jours ont étés trouvés dans la table nommée Férié
=(JOURSEM(LIGNE(INDIRECT(A2&":"&B2));2)<6)*(NB.SI(férié;LIGNE(INDIREC T(A2&":"&B2)))=0) est la multiplication (cellule à cellule) des 2 vecteurs: On obtient 0 1 1 1 1 1 0 0 1 1 1 ...
Il ne reste plus qu'à additionner les cellules du vecteur avec Sommeprod (ou Somme en validant avec Maj+Ctrl+entrée)
Cordialement JB
JB
Solution avec fonction perso: http://cjoint.com/?bewsbzNc0B
PJ http://cjoint.com/?bewveL5jgQ
Dans le tableur: =nbJoursOuvres(A2;B2;F7:F17)
Function NbJoursOuvres(date1, date2, fériés As Range) If date1 > date2 Then NbJoursOuvres = 0 Else NbJoursOuvres = 0 Do While date1 <= date2 témoin = False For Each j In fériés If date1 = j Then témoin = True Next j If Weekday(date1) <> 1 And Not témoin Then NbJoursOuvres = NbJoursOuvres + 1 End If date1 = date1 + 1 Loop End If End Function
JB
Solution avec fonction perso: http://cjoint.com/?bewsbzNc0B
PJ http://cjoint.com/?bewveL5jgQ
Dans le tableur: =nbJoursOuvres(A2;B2;F7:F17)
Function NbJoursOuvres(date1, date2, fériés As Range)
If date1 > date2 Then
NbJoursOuvres = 0
Else
NbJoursOuvres = 0
Do While date1 <= date2
témoin = False
For Each j In fériés
If date1 = j Then témoin = True
Next j
If Weekday(date1) <> 1 And Not témoin Then
NbJoursOuvres = NbJoursOuvres + 1
End If
date1 = date1 + 1
Loop
End If
End Function
Solution avec fonction perso: http://cjoint.com/?bewsbzNc0B
PJ http://cjoint.com/?bewveL5jgQ
Dans le tableur: =nbJoursOuvres(A2;B2;F7:F17)
Function NbJoursOuvres(date1, date2, fériés As Range) If date1 > date2 Then NbJoursOuvres = 0 Else NbJoursOuvres = 0 Do While date1 <= date2 témoin = False For Each j In fériés If date1 = j Then témoin = True Next j If Weekday(date1) <> 1 And Not témoin Then NbJoursOuvres = NbJoursOuvres + 1 End If date1 = date1 + 1 Loop End If End Function
JB
BigMama
Bonsoir, Merci à JB et AV pour leur aide ainsi qu'a Cath pour la traduction de toutes ces formules complexes. Je me met ç l'oeuvre pour vérifier si tout fonctionne comme je le souhaite. Ce site des news est SUPER !! Encore merci à tous BigMama
"BigMama" a écrit dans le message de news: %
Bonsoir, Si Miniminou comprend tout c'est une pro! POur ma part mes connaissances sont trop limités et j'aimerais plus de détail sur le fonctionnement de la formule. Par avance Merci et pardon pour ma nullité BIgMama
Miniminou est tout fraîchement reformaté et boosté et je lis AV qui nous dit :
Ne pas utiliser la fonction de l'utilitaire d'analyse mais l'une des ces formules matricielles (validation par ctrl+maj+entrée)
Je vais étudier ça, merci beaucoup. -- /____/ / / - > O O < - - o -
v < Cath :-)
Bonsoir,
Merci à JB et AV pour leur aide ainsi qu'a Cath pour la traduction de toutes
ces formules complexes. Je me met ç l'oeuvre pour vérifier si tout
fonctionne comme je le souhaite. Ce site des news est SUPER !!
Encore merci à tous
BigMama
"BigMama" <BigMama@wanadoo.fr.invalid> a écrit dans le message de news:
%234fMA9KEGHA.3728@tk2msftngp13.phx.gbl...
Bonsoir,
Si Miniminou comprend tout c'est une pro! POur ma part mes connaissances
sont trop limités et j'aimerais plus de détail sur le fonctionnement de la
formule.
Par avance Merci et pardon pour ma nullité
BIgMama
Miniminou est tout fraîchement reformaté et boosté et je lis AV qui nous
dit :
Ne pas utiliser la fonction de l'utilitaire d'analyse mais l'une des ces
formules matricielles (validation par ctrl+maj+entrée)
Je vais étudier ça, merci beaucoup.
--
/____/
/ /
- > O O < -
- o -
Bonsoir, Merci à JB et AV pour leur aide ainsi qu'a Cath pour la traduction de toutes ces formules complexes. Je me met ç l'oeuvre pour vérifier si tout fonctionne comme je le souhaite. Ce site des news est SUPER !! Encore merci à tous BigMama
"BigMama" a écrit dans le message de news: %
Bonsoir, Si Miniminou comprend tout c'est une pro! POur ma part mes connaissances sont trop limités et j'aimerais plus de détail sur le fonctionnement de la formule. Par avance Merci et pardon pour ma nullité BIgMama
Miniminou est tout fraîchement reformaté et boosté et je lis AV qui nous dit :
Ne pas utiliser la fonction de l'utilitaire d'analyse mais l'une des ces formules matricielles (validation par ctrl+maj+entrée)
Je vais étudier ça, merci beaucoup. -- /____/ / / - > O O < - - o -