Formule à compléter "Jour trentième" ou "Jour consécutif"
Résolu
thibaut_francois
Messages postés
96
Date d'inscription
Statut
Membre
Dernière intervention
-
thibaut_francoi -
thibaut_francoi -
Bonjour à tous,
En avril, vous m'aviez aidé sur une formule pour calculer la durée d'un séjour dans un mois pré-déterminé.
J'aurais besoin d'un complément dans cette formule, à savoir :
- si la colonne C = T, alors la durée de séjour doit être calculée en jours trentième (jours360;A1;B1+1;VRAI)...
- si la colonne C = C, alors la durée de séjour doit être calculée en jours consécutifs (ce que fait déjà très bien la formule).
Ca semble simple, mais comme je n'arrive pas à maîtriser la formule que vous m'aviez postée, je ne parviens pas à le faire moi-même ^^
Merci de votre aide à tous.
https://www.cjoint.com/?0KqkVAkjZHp
En avril, vous m'aviez aidé sur une formule pour calculer la durée d'un séjour dans un mois pré-déterminé.
J'aurais besoin d'un complément dans cette formule, à savoir :
- si la colonne C = T, alors la durée de séjour doit être calculée en jours trentième (jours360;A1;B1+1;VRAI)...
- si la colonne C = C, alors la durée de séjour doit être calculée en jours consécutifs (ce que fait déjà très bien la formule).
Ca semble simple, mais comme je n'arrive pas à maîtriser la formule que vous m'aviez postée, je ne parviens pas à le faire moi-même ^^
Merci de votre aide à tous.
https://www.cjoint.com/?0KqkVAkjZHp
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
- Formule si ou - Guide
- Mettre a jour chromecast - Accueil - Guide TV et vidéo
- Comment mettre à jour ses pilotes - Guide
2 réponses
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.
-MAX($A2;$E$1);0)
Le zéro souligné est la valeur affichée si aucune des 4 conditions n'est valide.
Faut que j'arrive à la maîtriser !
Tu déchires!
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