Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Fonction SI et DATEDIF combinée

FAT LARDIGO

XLDnaute Nouveau
Bonjour,
Ayant épuisé mon stock de patience et de cellules grises, j'en appelle à vos connaissances en espérant solutionner mon casse-tête.

Alors, alors...

Je souhaiterai calculer le nombre de jours entre deux dates (date d'entrée et date de sortie/ou/date du jour) avec plusieurs variables (sinon ce serait pas drôle!):
-Si les personnes sont entrées avant le 01/01/2022, il faut prendre en compte la date du 01/01/2022, si après ou le même jour que le 01/01/2022 il faut prendre la date inscrite dans la cellule.
-Si les personnes sont sorties, il faut prendre la date à laquelle elles sont sorties, si pas de date de sortie inscrite, il faut prendre la date du jour.

N'ayant pas peur du ridicule, j'ose vous montrer ma formule (M=date d'entrée / Y=date de sortie) :

=DATEDIF(SI(M2<"01/01/2022";"01/01/2022";M2);SI(Y2="";AUJOURDHUI();Y2);"d")

Enfin, dans un second temps, je souhaitais totaliser le nombre de journées réalisées (nombre de journées où les personnes ont été présentes dans l'année 2022) dans une cellule :

=SOMME(DATEDIF(SI(Hébergement!M2:M1000<="01/01/2022";"01/01/2022";Hébergement!M2:M1000);SI(Hébergement!Y2:Y1000="";AUJOURDHUI();Hébergement!Y:Y);"d"))

En vous remerciant par avance bien chaleureusement pour votre aide !

 
Solution
Bonjour,
Ta formule est à modifier comme ceci :
Code:
=DATEDIF(SI(M2<DATE(2022;1;1);DATE(2022;1;1);M2);SI(Y2="";AUJOURDHUI();Y2);"d")
mais on peut faire plus court avec :
Code:
=SI(Y2="";AUJOURDHUI();Y2)-MAX(DATE(2022;1;1);M2)
Cordialement

ALS35

XLDnaute Occasionnel
Bonjour,
Ta formule est à modifier comme ceci :
Code:
=DATEDIF(SI(M2<DATE(2022;1;1);DATE(2022;1;1);M2);SI(Y2="";AUJOURDHUI();Y2);"d")
mais on peut faire plus court avec :
Code:
=SI(Y2="";AUJOURDHUI();Y2)-MAX(DATE(2022;1;1);M2)
Cordialement
 

ALS35

XLDnaute Occasionnel
Re,
A priori non car dans ce cas les dates sont considérées comme du texte. C'était le problème dans ta formule.
Modifie en conséquence ta deuxième formule.
À la place de DATE(2022;1;1) , tu peux aussi utiliser DATEVAL("01/01/2022")
Cordialement
 

Discussions similaires

Réponses
13
Affichages
548
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…