Formule si avec deux dates limite

Fermé
Famar - 11 nov. 2023 à 18:38
brucine Messages postés 17626 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 12 novembre 2024 - 20 nov. 2023 à 08:37

Bonjour,

du 15 juin au 30 septembre une personne doit acquitter une taxe de séjour. En utilisant une formule dans une feuille excel, je voudrais calculer un nombre de jours entre deux dates, sachant que s'il loue par exemple du 10 au 17 juin il ne  paiera la taxe que pour deux jours, s'il loue du 16 au 25 il paiera la totalité des jours soit 10 jours et enfin s'il loue du 25 septembre au 05 octobre il paiera 5 jours.  

C12= date d'arrivée        C13= date de départ

D12 =15/06/2023            D13= 30/09/2023

ma formule :

=SI(C12<D12;DATEDIF(D12;C13;"md");SI(C12>=D12;DATEDIF(C12;C13;"md");SI(C13>D13;DATEDIF(C12;D13;"md"))))

cela fonctionne pour les deux premiers "SI" mais pas le troisième (donne alors le nb total de jours entre C12,C13)

quel est mon erreur; y a t il une formule plus simple ?

merci à tous de votre aide 

cordialement 

Mario
Windows / Edge 119.0.0.0

6 réponses

DjiDji59430 Messages postés 4139 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 8 novembre 2024 678
Modifié le 11 nov. 2023 à 18:48

Bonjour à tous,

je serais curieux de voir fonctionner cette formule

exemple DATEDIF(D12;C13;"md")

D12 =15/06/2023      C13= date de départ

Différence entre un nombre et un texte ...........


Crdlmt

Bonjour,

- - - Un fichier EXCEL (test ou non), complété par des explications exhaustives et des exemples remplis à la main, mis sur https://www.cjoint.com/ , ainsi que la version d'Excel, permettrait aux intervenants de répondre plus précisément à ta question.
Crdmt

0

Bonsoir,

Il ne faut pas oublier que les fonctions demandent toujours 3 termes, sous la forme :  Si( A vrai , => B , sinon C)

Si tu veux imbriquer des fonctions Si ( ; ; ), il ne faut pas oublier que la 2ème formule Si ( ; ;) ne doit pas oublier le 3ème terme. Or ta formule ne donne pas de 3ème terme.

Tu écris : =SI(C12<D12;DATEDIF(D12;C13;"md");

SI(C12>=D12;DATEDIF(C12;C13;"md");

SI(C13>D13;DATEDIF(C12;D13;"md") ;      ?????????????????   )))

Bonne suite !

0

Merci à tous pour vos réponses, je me suis certes mal exprimé dans mon commentaire. Pour bien expliquer il s'agit vous l'avez compris de location d'appartement ... quand je nomme la case C12 date d'arrivée et C13 date de départ.. il s'agit bien sur de date réelle, écrite sous la forme : jj/mm/aaaa  et non de texte.. cette date est donc une variable.

j'ai testé les 3 formules une par une et deux premières ensemble : cela fonctionne c'est en associant la troisième que le problème apparait : la réponse D14 est fausse la réponse est le nombre total de jours entre les 2 dates arrivée et départ et non arrivée et 30/09/2023

quand à la formule, il me semblait que l'on pouvait imbriquer 3 conditions ou plus dans la fonction SI sans le troisième argument.  ??

J'utilise Excel 2019

merci de vos réponses

0

Bonsoir,

Le problème n'est pas de savoir si tes données sont du texte ou des données chiffrées ou même des formules, c'est que tu n'as pas de 3ème membre dans ta formule imbriquée; au besoin si tu ne veux rien mettre, il faut entrer : ""  .  Un ordinateur est très bête, il suffit juste d'être un peu plus malin que lui.

Ensuite, pour ce qui est des imbrications, un référent disait ici il y a quelques semaines qu'on pouvait aller jusqu'à 64. Alors une seule ne devrait pas poser de problème, à la condition de respecter les obligations des formules.

Bonne suite

0

Bonjour,
Désolé mais votre solution n'est pas bonne... elle est même refusée. j'ai essayé différentes chose : "", " ", "rien"   la formule est refusée.

vu sur differents tutos, on peut bien faire la fonction SI en ne mettant que des conditions et sans le troisième element

merci pour vos réponses, je vais chercher une autre solution

Bien cordialement

0
brucine Messages postés 17626 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 12 novembre 2024 2 567
13 nov. 2023 à 10:01

Bonjour,

Bien sûr que non.

La fonction SI a toujours 3 arguments et qu'il faut qui plus est imbriquer selon besoin dans autant de parenthèses s'il y en a plusieurs, ce que tu n'as fait dans une fonction SI isolée ni dans leur ensemble.

C'est la fonction SI.CONDITIONS qui en a un nombre pair.

Mais si des tutos te disent le contraire, pourquoi t'adresser ici plutôt que de les suivre?

0
brucine Messages postés 17626 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 12 novembre 2024 2 567 > brucine Messages postés 17626 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 12 novembre 2024
13 nov. 2023 à 10:47

En supposant, tu ne veux pas nous fournir un extrait Excel nous fournissant l'emplacement des données:

D12 borne basse 15/06/2023
D13 borne haute 30/09/2023
C12 date d'arrivée
C13 date de départ.

Je ne vois pas qui plus est pourquoi chercher midi à 14h, le résultat est donné sauf erreur de ma part par

=DATEDIF(SI(C12>=D12;C12;D12);SI(C13>=D13;D13;C13);"D")+1

où chaque condition SI comporte bien 3 arguments.

0
Le Pingou Messages postés 12184 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 11 novembre 2024 1 448 > brucine Messages postés 17626 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 12 novembre 2024
13 nov. 2023 à 11:15

Merci

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12184 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 11 novembre 2024 1 448
Modifié le 13 nov. 2023 à 09:59

Bonjour,

C'est étrange dans votre formule vous testez SI(C12<D12;DATEDIF(D12;C13;..

Dans votre description C12 = date arrivée et D12 qui est aussi date d'arrivée...

N'y a-t'il pas une erreur...!

En plus comment on trouve ce que vous mentionnez:

sachant que s'il loue par exemple du 10 au 17 juin il ne  paiera la taxe que pour deux jours, s'il loue du 16 au 25 il paiera la totalité des jours soit 10 jours et enfin s'il loue du 25 septembre au 05 octobre il paiera 5 jours.  


0

Bonjour à tous,
j'ai enfin réussi à obtenir ce que je voulais... désolé si mes explications n'ont pas été claires pour certains, pas toujours facile de soumettre un problème. En tout cas je croyais qu'un forum pouvait être une aide pour un néophite comme moi sur Excel, je trouve certaines réponses un peu dur.

Merci Brucine, c'etait bien "SI.CONDITIONS" qu'il fallait employer, en combinaison avec les fonctions "ET" et "DATEDIF"     la solution pour les curieux:

=SI.CONDITIONS(ET(C12<D12;C13<D12);0;ET(C12<=D12;C13>=D12);DATEDIF(D12;C13;"yd");ET(C12>=D12;C13<=D13);DATEDIF(C12;C13;"yd");ET(C12<=D13;D13<=C13);DATEDIF(C12;D13;"yd");ET(D13<C12;D13<C13);0)

où D12, D13 sont deux dates fixes : 15/06 et 30/09

et C12, C13 les dates réelles d'arrivée et départ du logement

ne me reste plus qu'à trouver comment exprimer les dates pour ne pas tenir compte des années   :  JJ/MM ne fonctionne pas

Merci je mets fin à cette discussion

0
brucine Messages postés 17626 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 12 novembre 2024 2 567
20 nov. 2023 à 08:37

Bonjour,

On ne voit pas pourquoi le format jj/mm échouerait à cela près que mm est le format de mois numérique.

Mais comme je l'ai souligné auparavant, le bug est dans le commutateur yd de DATEDIF, ce qui nous intéresse est le nombre de jours consommés, d tout court.

0