Signaler

Formule calcul dates [Résolu]

Posez votre question 42717 6Messages postés vendredi 6 janvier 2017Date d'inscription 12 janvier 2017 Dernière intervention - Dernière réponse le 9 janv. 2017 à 17:16 par 42717
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 !!!
Afficher la suite 
Utile
+3
moins plus
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
Donnez votre avis
Utile
+2
moins plus
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/
Donnez votre avis
Utile
+1
moins plus
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.  :)
42717 6Messages postés vendredi 6 janvier 2017Date d'inscription 12 janvier 2017 Dernière intervention - 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 !!!!
Répondre
albkan 2272Messages postés samedi 26 mars 2016Date d'inscription 18 janvier 2017 Dernière intervention - 9 janv. 2017 à 16:22
 
=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.  :)
Répondre
42717 6Messages postés vendredi 6 janvier 2017Date d'inscription 12 janvier 2017 Dernière intervention - 9 janv. 2017 à 16:33
Merci la formule fonctionne super ! Par contre quand je la tire vers le bas j'ai toujours 42744....
Répondre
albkan 2272Messages postés samedi 26 mars 2016Date d'inscription 18 janvier 2017 Dernière intervention - 9 janv. 2017 à 16:38
 
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.
 
Répondre
42717 6Messages postés vendredi 6 janvier 2017Date d'inscription 12 janvier 2017 Dernière intervention - 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é.
Répondre
Donnez votre avis
Utile
+1
moins plus
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
albkan 2272Messages postés samedi 26 mars 2016Date d'inscription 18 janvier 2017 Dernière intervention - 9 janv. 2017 à 00:40
 
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.
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !