Formule à compléter "Jour trentième" ou "Jour consécutif"

Résolu
thibaut_francois Messages postés 99 Statut Membre -  
 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

2 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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.

    =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.
    1
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      PS: précision sur la fin de formule
      -MAX($A2;$E$1);0)
      Le zéro souligné est la valeur affichée si aucune des 4 conditions n'est valide.
      0
    2. thibaut_francois Messages postés 99 Statut Membre 1
       
      Merciiiiii beaucoup Gbinforme!! Je potasse ça pour me familiariser avec la formule ^^
      Faut que j'arrive à la maîtriser !

      Tu déchires!
      0
    3. thibaut_francoi
       
      Bonjour Gbinforme...

      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
      0
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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 ?
    0
    1. thibaut_francois Messages postés 99 Statut Membre 1
       
      Oui exactement....

      C'est clair que je ne maîtrise pas du tout TA formule gbinforme ^^ C'est trop complexe pour moi là ^^
      0