Formule à compléter "Jour trentième" ou "Jour consécutif"
Résolu/Fermé
thibaut_francois
Messages postés
96
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
14 avril 2021
-
16 nov. 2012 à 10:54
thibaut_francoi - 17 janv. 2013 à 11:46
thibaut_francoi - 17 janv. 2013 à 11:46
A voir également:
- Formule à compléter "Jour trentième" ou "Jour consécutif"
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mettre à jour ses pilotes - Guide
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Formule si et - Guide
2 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
18 nov. 2012 à 19:04
18 nov. 2012 à 19:04
Bonjour Thibaut,
C'est clair que je ne maîtrise pas du tout TA formule
Je vais essayer de te l'expliquer car il n'y a pas de raison pour que tu ne comprennes pas.
Voici le détail des différentes fonctions de la formule :
=SI(OU( il faut tester toutes les conditions pour avoir un résultat :
Y a-t-il présence dans le mois en cours ligne 1 ?
condition 1 : la période commence au cours du mois
$E$1=FIN.MOIS($A2;-1)+1; la date ligne 1 égale le début du mois de la date début(A)
condition 2 : la période se termine au cours du mois
FIN.MOIS($E$1;0)=FIN.MOIS($B2;0); la fin du mois de la date ligne 1 égale la fin du mois de départ (B)
condition 3 : séjour en cours avec arrivée antérieure à la fin de mois
ET($B2=""; pas de date départ
$A2<=FIN.MOIS($E$1;0)); et la date début est inférieure ou égale à la fin de mois de la date ligne 1
condition 4 : présence en cours ce mois
ET($E$1>=$A2; la date ligne 1 est supérieure ou égale à la date début(A)
$E$1<=$B2)); et la date ligne 1 est inférieure ou égale à la date départ(B)
Si l'une des 4 conditions précédentes est remplie alors l'on teste s'il faut rajouter un jour
SI( 2 cas :
OU(
FIN.MOIS($E$1;0)=FIN.MOIS($B2;0); la fin du mois de la date ligne 1 égale la fin du mois de départ (B)
$A2=$B2); ou départ le jour du début
1;0) si l'une des conditions précédentes sont vraies l'on ajoute 1 sinon 0
puis l'on fait le calcul du nombre de jours que l'on va ajouter.
Il faut tester les jours trentièmes :
+SI($C2="T";
si condition remplie
MIN($B2;E$1+SI(JOUR($B2)=31;29;30)); on ajoute la date la plus petite entre date départ et début du mois de la date ligne 1 plus 29 jours si départ au 31 sinon 30 pour avoir un mois complet à 30 jours,
sinon ("C" est implicite)
MIN($B2;FIN.MOIS(E$1;0)+1)) on ajoute la date la plus petite entre date départ et début du mois suivant de la date ligne 1
puis quel que soit le cas précédent,
-MAX($A2;$E$1);0) on soustrait la date la plus grande entre date début et date ligne 1
La formule est mise en E2 puis "tirée" (avec la petite croix en bas à droite) sur les colonnes concernées et ensuite sur toutes les lignes
Voici le résultat : https://www.cjoint.com/?BKssQ1tZWXn
Bon test.
C'est clair que je ne maîtrise pas du tout TA formule
Je vais essayer de te l'expliquer car il n'y a pas de raison pour que tu ne comprennes pas.
=SI(OU(E$1=FIN.MOIS($A2;-1)+1;FIN.MOIS(E$1;0)=FIN.MOIS($B2;0);ET($B2="";$A2<=FIN.MOIS(E$1;0));ET(E$1>=$A2;E$1<=$B2));SI(OU(FIN.MOIS(E$1;0)=FIN.MOIS($B2;0);$A2=$B2);1;0)+SI($C2="T";MIN($B2;E$1+SI(JOUR($B2)=31;29;30));MIN($B2;FIN.MOIS(E$1;0)+1))-MAX($A2;E$1);0)
Voici le détail des différentes fonctions de la formule :
=SI(OU( il faut tester toutes les conditions pour avoir un résultat :
Y a-t-il présence dans le mois en cours ligne 1 ?
condition 1 : la période commence au cours du mois
$E$1=FIN.MOIS($A2;-1)+1; la date ligne 1 égale le début du mois de la date début(A)
condition 2 : la période se termine au cours du mois
FIN.MOIS($E$1;0)=FIN.MOIS($B2;0); la fin du mois de la date ligne 1 égale la fin du mois de départ (B)
condition 3 : séjour en cours avec arrivée antérieure à la fin de mois
ET($B2=""; pas de date départ
$A2<=FIN.MOIS($E$1;0)); et la date début est inférieure ou égale à la fin de mois de la date ligne 1
condition 4 : présence en cours ce mois
ET($E$1>=$A2; la date ligne 1 est supérieure ou égale à la date début(A)
$E$1<=$B2)); et la date ligne 1 est inférieure ou égale à la date départ(B)
Si l'une des 4 conditions précédentes est remplie alors l'on teste s'il faut rajouter un jour
SI( 2 cas :
OU(
FIN.MOIS($E$1;0)=FIN.MOIS($B2;0); la fin du mois de la date ligne 1 égale la fin du mois de départ (B)
$A2=$B2); ou départ le jour du début
1;0) si l'une des conditions précédentes sont vraies l'on ajoute 1 sinon 0
puis l'on fait le calcul du nombre de jours que l'on va ajouter.
Il faut tester les jours trentièmes :
+SI($C2="T";
si condition remplie
MIN($B2;E$1+SI(JOUR($B2)=31;29;30)); on ajoute la date la plus petite entre date départ et début du mois de la date ligne 1 plus 29 jours si départ au 31 sinon 30 pour avoir un mois complet à 30 jours,
sinon ("C" est implicite)
MIN($B2;FIN.MOIS(E$1;0)+1)) on ajoute la date la plus petite entre date départ et début du mois suivant de la date ligne 1
puis quel que soit le cas précédent,
-MAX($A2;$E$1);0) on soustrait la date la plus grande entre date début et date ligne 1
La formule est mise en E2 puis "tirée" (avec la petite croix en bas à droite) sur les colonnes concernées et ensuite sur toutes les lignes
Voici le résultat : https://www.cjoint.com/?BKssQ1tZWXn
Bon test.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
16 nov. 2012 à 18:49
16 nov. 2012 à 18:49
bonjour thibaut_francois,
Effectivement, je comprends que tu n'arrive pas à maîtriser la formule
si la colonne C = T, alors la durée de séjour doit être calculée en jours trentième
Cela signifie que les mois complets font 30 jours ?
Effectivement, je comprends que tu n'arrive pas à maîtriser la formule
si la colonne C = T, alors la durée de séjour doit être calculée en jours trentième
Cela signifie que les mois complets font 30 jours ?
thibaut_francois
Messages postés
96
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
14 avril 2021
1
16 nov. 2012 à 21:46
16 nov. 2012 à 21:46
Oui exactement....
C'est clair que je ne maîtrise pas du tout TA formule gbinforme ^^ C'est trop complexe pour moi là ^^
C'est clair que je ne maîtrise pas du tout TA formule gbinforme ^^ C'est trop complexe pour moi là ^^
18 nov. 2012 à 21:31
-MAX($A2;$E$1);0)
Le zéro souligné est la valeur affichée si aucune des 4 conditions n'est valide.
19 nov. 2012 à 20:41
Faut que j'arrive à la maîtriser !
Tu déchires!
17 janv. 2013 à 11:46
J'ai posté une petite demande d'ajustement ^^
Si tu pouvais, une nouvelle fois, m'aider.
http://www.commentcamarche.net/forum/affich-26926104-ajustement-d-une-formule
Merci à toi