XL 2016 Calcul nombre de jours en fonction des dates

samimi94

XLDnaute Occasionnel
Bonjour à tous,

Je bloque sur une formule de calcul sur un de mes fichiers et malgré diverses recherches je ne parviens pas à trouver la bonne.
En fonction d'une période entre deux dates (début et fin de contrat), je cherche à calculer le nombre de jours pour la période d'essai.
La règle est la suivante :
Deux jours par semaine dans la limite de 3 semaines si contrat inférieur ou égal à 6 mois.
1 mois pour pour les contrats supérieurs à 6 mois.
Ensuite je souhaiterai que la date de fin de période d'essai s'affiche automatiquement en fonction du nombre calculé précédemment.

Par avance merci pour votre aide.

Bonne journée à tous.

Samimi94
 

Pièces jointes

  • Période essai.xlsx
    11.6 KB · Affichages: 17

Victor21

XLDnaute Barbatruc
Bonjour.

Une proposition à tester en pj :)

Correction : à apporter au fichier joint
B3=SI((B2-B1)<=180;MIN(6;ENT((B2+1-B1)/3.5));30)
 

Pièces jointes

  • Copie de Période essai.xlsx
    11.7 KB · Affichages: 22
Dernière édition:

samimi94

XLDnaute Occasionnel
Re-bonjour Le Forum, Victor 21, Charles Exceller,

Merci beaucoup pour votre réponse. C'est tout à fait ce que je recherchais.
Juste pour comprendre, si vous avez du temps, je suis preneuse pour comprendre ces formules, du moins comment se fait le calcul.

Quoiqu'il en soit merci pour tout.

Bonne journée.

Samimi94.
 

Charles Exceller

XLDnaute Nouveau
Re-bonjour Le Forum, Victor 21, Charles Exceller,

Merci beaucoup pour votre réponse. C'est tout à fait ce que je recherchais.
Juste pour comprendre, si vous avez du temps, je suis preneuse pour comprendre ces formules, du moins comment se fait le calcul.

Quoiqu'il en soit merci pour tout.

Bonne journée.

Samimi94.
Personnellement, je préfère décomposer le problème en plusieurs étapes avant de fusionner le tout dans une formule.
  1. Ainsi, j'ai d'abord défini comment choisir entre + ou - 6 mois de contrat. (Comparaison des dates avec l'utilisation de la fonction : Mois.Decaler)
  2. Puis, calculer le nombre de semaine entre deux dates et ne prendre le nombre que s'il est inférieur à 3
  3. Le multiplier par 2 pour avoir le nombre de jour
  4. L'ajouter à la date de début du contrat
  5. Si le contrat est plus long, utiliser de nouveau la fonction mois.decaler calculer la date de fin de période d'essai.
En faisant dans des cellules les unes en dessous des autres, la décomposition est plus simple à comprendre. En plus, cela permet de voir les valeurs et s'assurer du bon calcul.
 

samimi94

XLDnaute Occasionnel
A tous,

Un grand merci pour votre contribution et partage de connaissances.
Encore un plus à rajouter dans mes légères connaissances Excel. Le chemin est encore long mais grâce à vous la progression est là.

Bonne journée à tous.

Samimi94.
 

samimi94

XLDnaute Occasionnel
Bonjour à tous,

Je reviens vers vous car je rencontre des difficultés avec les différentes options proposées.
Concernant la proposition de Victor21, lorsque je change les dates et que celles-ci sont inférieures à 6 mois, j'obtiens toujours 6 jours de préavis et non pas 2 si une semaine, 4 si 2 semaines et 6 si 3 semaines ou plus (jusqu'à 6 mois).
Concernant la proposition de Charles Exceller j'ai un souci avec la syntaxe _xlfn.DAYS quand je suis sur une période inférieure à 6 mois.
Enfin avec la proposition de Roblochon, j'obtiens des milliers de jours lorsque je suis au dessus de 6 mois.

Pourriez-vous m'aider à solutionner le problème SVP ?

A savoir :

Période de 1 semaine = 2 jours de préavis
Période de 2 semaines = 4 jours de préavis
Période de 3 semaines = 6 jours de préavis
Entre 3 semaines et 6 mois = 6 jours de préavis
Plus de 6 mois = 30 jours de préavis.

Merci à tous pour votre aide.

Samimi94
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

En b3 du fichier du post #5 remplacer la formule existante par =SI(DATEDIF(B1;B2;"M")>6;JOUR(FIN.MOIS(B1;0));MIN(3;NO.SEMAINE(B2;2)-NO.SEMAINE(B1;2))*2)

La fonction retournera 30 ou 31 jour suivant le mois de départ concerné. Si ce doit être toujours 30 ou 31 pour les périodes > - mois
, remplacer 'JOUR(FIN.MOIS(B1;0))' par 30 ou 31

Les milliers était simplement la représentation numérique d'une date renvoyée par la précédente fonction.

A bientôt
 

Victor21

XLDnaute Barbatruc
Bonjour à tous, @samimi94
Concernant la proposition de Victor21, lorsque je change les dates et que celles-ci sont inférieures à 6 mois, j'obtiens toujours 6 jours de préavis et non pas 2 si une semaine, 4 si 2 semaines et 6 si 3 semaines ou plus (jusqu'à 6 mois).
Exact. Pardon :( erreur de compréhension...
En B3 essayez : =SI((B2-B1)<=180;MIN(6;ENT((B2+1-B1)/3.5));30)
Cette proposition renvoie 2 jours d'essai par semaine complète dans la limite de 6 jours si 3 semaines et +, ou 30 jours d'essai à partir de 180 jours
 

samimi94

XLDnaute Occasionnel
Bonjour le Forum, Victor21,

Merci d'avoir repris le fil pour corriger la formule.

Bien que la solution apportée par Roblochon fonctionne parfaitement, j'ai testé ta correction afin d'apprendre les différentes possibilités offertes par Excel pour un même résultat.

Malheureusement, j'ai une erreur qui dit "champ introuvable" et dans la cellule j'ai : #CHAMP!
Lorsque j'évalue la formule l'erreur qui apparaît est : =Si(VRAI;MIN(6;ENT(119/#VALEUR!));30)

Merci encore pour votre partage et disponibilité.

Bonne soirée à tous.

Samimi94
 

Discussions similaires

Réponses
14
Affichages
639
Réponses
14
Affichages
490

Statistiques des forums

Discussions
311 720
Messages
2 081 899
Membres
101 834
dernier inscrit
Jeremy06510