Formule calcul dates

Résolu/Fermé
42717 Messages postés 6 Date d'inscription vendredi 6 janvier 2017 Statut Membre Dernière intervention 12 janvier 2017 - 6 janv. 2017 à 23:01
42717 Messages postés 6 Date d'inscription vendredi 6 janvier 2017 Statut Membre Dernière intervention 12 janvier 2017 - 9 janv. 2017 à 17:16
Bonjour,

Je débute dans l'utilisation de formules conditionnelles et j'éprouve des difficultés...
Voici ma formule
=SI(ET(T7="";O7="";$Y$2-E7;O7-E7)
Ce que je veux obtenir c'est :
si j'ai rien en O7 et rien en T7 ; alors date du jour (en Y2) - date précisée en E7 ; sinon date précisée en O7 - date précisée en E7.
Ça fonctionne bien quand j'ai une date en O7, rien en T7 mais ça me donne -42717 (je suppose que c'est l'écart depuis l'année 1900) quand j'ai rien en O7 mais une date en T7.

Dans les faits, je dois soit avoir une date en O7, soit une en T7, soit ni en O7 ni en T7 mais pas dans les deux...

Pas sûre que ma question est assez claire...faites moi préciser au besoin.

Merci d'avance !!!

4 réponses

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
Modifié par eriiic le 6/01/2017 à 23:39
Bonjour,

déjà il te manque une parenthèse fermante :
=SI(ET(T7="";O7="");$Y$2-E7;O7-E7)
Ensuite revois tes conditions :
si T7="" ET O7="" alors $Y$2-E7 (d'accord)
sinon, c'est à dire si T7<>"" OU O7<>"" alors O7-E7.
Et là ça cloche car tu inclues le cas T7<>"" et O7=""
Je te laisse réfléchir là dessus, au besoin fais-toi une table de vérité pour noter ce que tu veux dans les 4 cas.
eric
En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
5
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 9/01/2017 à 16:47
Bonjour tt le monde

=ESTVIDE(T7)*((ESTVIDE(O7)*(Y2-E7))+(O7-E7))
donne 0 au lieu de "" camouflé par une MEFC

maquette
https://mon-partage.fr/f/7odwNe45/
 Michel
2
Utilisateur anonyme
7 janv. 2017 à 01:58
Bonjour 42717,

Je te propose cette formule :

=SI(ET(O7<>"";T7<>"");"";SI(O7<>"";O7;SI(T7<>"";T7;Y$2))-E7)

Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.

Cordialement.  :)
1
42717 Messages postés 6 Date d'inscription vendredi 6 janvier 2017 Statut Membre Dernière intervention 12 janvier 2017
9 janv. 2017 à 15:58
Bonjour,

Un gros merci pour ta réponse...ça fonctionne super ; par contre, je crois c'est mes idées qui n'étaient pas assez claires !
Voilà ce dont j'ai besoin, et merci à eriiic pour m'avoir demandé de noter ce que je vœux dans les 4 cas (;-).
Je me suis essayée mais message d'erreur comme quoi trop long....(certainement aussi erreurs mais bon...:
cas 1 : si O7 et T7 sont complétés (pas vides) ; alors je veux rien ("")
cas 2 : si O7 est complété et T7 est vide ; alors je veux O7-E7;
cas 3 : si O7 est vide et T7 est complété ; alors je veux rien ("")
cas 4 : si O7 et T7 sont vides ; alors je veux Y2-E7 .

Par ailleurs, j'aimerais pouvoir tirer ma formule vers le bas et que, en la tirant vers le bas, pour les lignes absolument vides (j'ai d'autres colonnes), il n'y ait pas 42744 soit le calcul depuis 1900....
Je veux des "" comme résultat dans certains cas, car je vais devoir faire une moyenne des résultats des lignes dans la colonne Y....

Merci encore !!!!
0
Utilisateur anonyme > 42717 Messages postés 6 Date d'inscription vendredi 6 janvier 2017 Statut Membre Dernière intervention 12 janvier 2017
Modifié par albkan le 9/01/2017 à 16:33
 
=SI(T7<>"";"";SI(O7<>"";O7;Y$2)-E7)

Pour tes lignes absolument vides, je n'ai pas de réponse car :
ligne vide => O7 et T7 vides : cas n° 4 => Y$2-E7

Il faut donc choisir une autre cellule de ta ligne 7 qui est toujours complétée
habituellement (exemple : A7 pour la date ou un n° ligne) ; donc si A7 vide :
ligne censée être entièrement vide (exemple : pas d'opération bancaire non
datée, ou pas de mouvement de stock sans référence article) ; si A7 non vide, application de la formule ci-dessus.  :)
0
42717 Messages postés 6 Date d'inscription vendredi 6 janvier 2017 Statut Membre Dernière intervention 12 janvier 2017
9 janv. 2017 à 16:33
Merci la formule fonctionne super ! Par contre quand je la tire vers le bas j'ai toujours 42744....
0
Utilisateur anonyme > 42717 Messages postés 6 Date d'inscription vendredi 6 janvier 2017 Statut Membre Dernière intervention 12 janvier 2017
Modifié par albkan le 9/01/2017 à 16:58
 
C'est normal : 42744 est ton pseudo ! Ah non, pardon 42717, j'ai confondu !  ;)
Sérieusement : 42744 est le n° de série qui correspond à la date 09/01/2017.

Juste pour info, le n° de série 42717 correspond à la date du 13/12/2016.  ;)

En B5 (par exemple) : 09/01/2017 ; tu la vois telle quelle car elle a un format
date jj/mm/aaaa (ou similaire). Si tu mets B5 en format Standard, tu verras
le n° de série de cette date, donc 42744. Excel fait tous les calculs de date
à partir des n° de série sous-jacents.

Je viens de modifier mon message précédent => tu n'as pas pu lire ce que
j'ai ajouté pour les lignes vides ; j'espère que ça résoudra ton problème.
 
0
42717 Messages postés 6 Date d'inscription vendredi 6 janvier 2017 Statut Membre Dernière intervention 12 janvier 2017
9 janv. 2017 à 17:16
Prise en flag ! Ça m'a pris la tête et j'ai alors manqué d'inspiration pour mon pseudo !

Merci encore. Très apprécié.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 419
7 janv. 2017 à 08:12
Bonjour

si vous êtes sur de ne pas avoir de date en même temps dans les deux cases (sinon la formule prendra la date au plus tard)

=SI(ET(O7="";T7="");Y2;MAX(O7;T7))-E7

Mais comme dit Eric (salut), on ne sait pas trop ce que vous voulez faire quand O7 est vide et T7 a une date

crdlmnt
1
 
Dans l'énoncé initial du demandeur 42717, sa formule de départ
contient $Y$2 => selon les T7, O7, E7, il va probablement tirer sa
formule vers le bas ! donc dans ta formule, il vaut mieux : Y$2 !

De plus, comme l'utilisateur doit éventuellement faire une saisie
en O7 ou en T7, il y a un risque qu'un utilisateur saisisse une date
dans une de ces cellules en oubliant d'effacer l'autre !

La formule que je lui ai proposée dans mon message #2 tient compte
de cela, puisque j'ai mis au début : =SI(ET(O7<>"";T7<>"");""; ... et avec
=SI(ET(O7<>"";T7<>"");"?"; il y aura un point d'interrogation si 2 dates
en même temps dans O7 et T7.
0