Microsoft 365 Calcul dates échéances multicritères

chris63*

XLDnaute Nouveau
Bonjour à tous,

Je fais pour le boulot, de nombreux tableaux contenant un calcul de date d'échéance.
Pour cela, j'utilise le fameux :
=SIERREUR(SI.CONDITIONS([@[Cond Règl]]="30 JN";MOIS.DECALER([@[Date livr/expé]];1);[@[Cond Règl]]="45 JN";MOIS.DECALER([@[Date livr/expé]]+45;0);[@[Cond Règl]]="60 JN";MOIS.DECALER([@[Date livr/expé]];2);[@[Cond Règl]]="90 JN";MOIS.DECALER([@[Date livr/expé]]+90;0);[@[Cond Règl]]="30 JFDM";FIN.MOIS([@[Date livr/expé]];1);[@[Cond Règl]]="45 JFDM";FIN.MOIS([@[Date livr/expé]]+45;0);[@[Cond Règl]]="60 JFDM";FIN.MOIS([@[Date livr/expé]];2);[@[Cond Règl]]="REG AV EXP";[@[Date livr/expé]]);"à vérifier")

C'est assez indigeste et ça ne fonctionne pas dans certains tableaux (alors que je pars du même tableau de base et avec la même formule)
D'où les deux questions suivantes :
1. Pourquoi, au lieu de "à vérifier", je me retrouve avec une date genre 15/02/1900 ?
2. Y a t'il un moyen de simplifier ? J'avais pensé à quelque chose avec une rechercheV, mais je n'arrive pas à concrétiser l'idée...

Ci-joint un tableau simplifié

Merci par avance et bonne soirée :)

Chrislaine
 

Pièces jointes

  • test com.xlsx
    17.6 KB · Affichages: 7
Solution
Bonjour,

il suffit d'ajouter une condition. Si Date livr/expé contient un numérique (une date est un numérique) alors choisir, sinon "A vérifier"

Vous verrez que dans la formule, "A vérifier" a été remplacé par un 0.
Les cellules ont reçu un format personnalisé : [>36526]jj/mm/aaaa;"A vérifier";"A vérifier";"A vérifier"

Le premier membre donnera un format date pour toutes dates supérieures ou égales au 1/1/2000 et "A vérifier" pour tout le reste (zéro, texte, nombre inférieur au 1/1/2000)
J'ai choisi arbitrairement le 1/1/2000 vous pouvez modifiez pour ce que vous voulez.

J'ai préféré cette forme plutôt que de faire afficher le texte "A vérifier" par la formule, car nous sommes dans une colonne qui attend un type numérique (date)...

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Avec les formules Choisir et Equiv :

CHOISIR(EQUIV([@[Cond Règl]];$M$2:$M$9;0); MOIS.DECALER([@[Date livr/expé]];1);[@[Date livr/expé]]+45;MOIS.DECALER([@[Date livr/expé]];2);[@[Date livr/expé]]+90;FIN.MOIS([@[Date livr/expé]];1);FIN.MOIS([@[Date livr/expé]]+45;0);FIN.MOIS([@[Date livr/expé]];2);[@[Date livr/expé]])
Où T_Cond_Reglements[Cond Règl] est la colonne de tableau structuré qui contient les libellés des conditions de règlement sur la feuille Données


Dans MOIS.DECALER([@[Date livr/expé]]+45;0) la fonction Mois.Decaler n'a pas de sens le résultat final sera [@[Date livr/expé]]+45
 

Pièces jointes

  • dates echeances com.xlsx
    24.8 KB · Affichages: 3
Dernière édition:

chris63*

XLDnaute Nouveau
Bonjour Hasco,

Merci pour tes réponses :)

Effectivement, pour la fonction MOIS.DECALER, autant faire simple !

Je n'avais jamais utilisé la combinaison Choir + equiv, je pense qu'elle me sera utile pour d'autres choses.

Par contre, quand je l'intègre dans mes tableaux existants, j'ai encore des cellules avec une date à 1900 au lieu de "à vérifier".
Rien de dramatique, mais comme j'ai aussi une mise en forme conditionnelle si l'échéance est dépassée, c'est moins lisible.
1645694474522.png

Je pense que c'est dû au fait que sur certaines lignes, ma colonne Cond Règl est remplie car j'ai l'info (et je suis supposée la mettre)
Si tu as une idée pour transformer la date 1900 en "à vérifier", je suis preneuse ;-)

Ci-joint un nouveau tableau plus proche de mes tableaux finaux et corrigé avec tes conseils

Merci encore !

Chris
 

Pièces jointes

  • test com échéances 2021.xlsx
    38.7 KB · Affichages: 3

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

il suffit d'ajouter une condition. Si Date livr/expé contient un numérique (une date est un numérique) alors choisir, sinon "A vérifier"

Vous verrez que dans la formule, "A vérifier" a été remplacé par un 0.
Les cellules ont reçu un format personnalisé : [>36526]jj/mm/aaaa;"A vérifier";"A vérifier";"A vérifier"

Le premier membre donnera un format date pour toutes dates supérieures ou égales au 1/1/2000 et "A vérifier" pour tout le reste (zéro, texte, nombre inférieur au 1/1/2000)
J'ai choisi arbitrairement le 1/1/2000 vous pouvez modifiez pour ce que vous voulez.

J'ai préféré cette forme plutôt que de faire afficher le texte "A vérifier" par la formule, car nous sommes dans une colonne qui attend un type numérique (date) et qu'il est important d'homogénéiser les types de donnée dans une même colonne de données. Pour les éventuels et futurs calcul statistiques et autre, ce sera plus facile.

Dans vos formules qui référenceront cette colonne vous n'aurez pas à traiter le cas Si "Date prévue règlement" = "A vérifier" mais simplement Si "Date prévue règlement" >0 ou Si "Date prévue règlement" >36526 ou tout autre comparaison sur dates, sans lever d'erreur.


Cordialement
 

Pièces jointes

  • test com échéances 2021.xlsx
    44.7 KB · Affichages: 5

chris63*

XLDnaute Nouveau
Bonjour Hasco,

Merci beaucoup, Je n'aurais jamais pensé à modifier le format des cellules !

"il est important d'homogénéiser les types de donnée dans une même colonne de données. Pour les éventuels et futurs calcul statistiques et autre, ce sera plus facile."
Ceci pourrait également expliquer pourquoi j'ai des soucis quand je reprends ces données dans power query ou pour les tableaux de bord..

Encore merci pour le temps passé et la clarté des explications :)

Bonne journée

Chrislaine
 

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch