Verification intervalle entre plusieurs dates

Bonjour,

J'ai un tableau de réservation dans lequel l'utilisateur saisie une demande de prêt en indiquant une date de début et une date de fin souhaitée. Après sa saisie, il faudrait que la colonne "validation" puisse l'informer de la validation de sa réservation.

Si sa demande est comprise dans un intervalle qui a déjà fait l'objet d'une réservation alors il faudrait indiquer "déjà réservé. Sinon "accepté".

Je ne sais pas comment rédiger ma formule SI dans la mesure où cette dernière doit scanner plusieurs intervalles de date. Merci de votre aide.

Bonjour

Un tableau structuré ne doit pas contenir de ligne vide, les lignes saisies sous la dernière s'incorporant naturellement au tableau et héritant des formules, validations et formats

Une colonne supposée recevoir des nombres ne doit pas contenir du texte (un espace dans ton cas) : cela complique inutilement les calculs basés sur ces colonnes alors qu'il est très simple de masquer les 0.

Les sources de listes déroulantes doivent être des colonnes de tableaux structurés, nommées et triées afin de garantir l'évolutivité naturelle des listes...

Voir les formules nommées D_prec, F_prec, O_prec qui alimentent la formule finale

Bonjour,

ceci en H4 ;

=SI(SOMMEPROD((C4>=C3:C$4)*(C4<=D3:D$4)*(B3:B$4=B4))>0;"Validé";"Déjà réservé")

@78chris

Merci pour les explications et le tableau. Cela fonctionne très bien, c'est bluffant. Je ne suis pas habitué au sommeprod et à cette manière d'incorporer des formules sous l'apparence d'un nom à l'intérieur de formules. J'imagine que c'est pour simplifier la lecture. Merci en tous cas.

@Doux Rêveur

La formule fonctionne uniquement pour vérifier si une date ne se trouve pas dans un intervalle de date précédemment saisi. Mais elle ne fonctionne pas ici car la vérification d'intervalle doit tenir compte de l'objet réservé.

Désolé, j'avais fait des erreurs en la recopiant, voici la correction ;

=SI(SOMMEPROD((C4>=C$3:C3)*(C4<=D$3:D3)*(B$3:B3=B4))=0;"Validé";"Déjà réservé")

Cela dit elle tenait déjà bien compte de l'objet réservé.

Et on peut rajouter ceci pour ne rien mettre quand la colonne B est vide ;

=SI(B4="";"";SI(SOMMEPROD((C4>=C$3:C3)*(C4<=D$3:D3)*(B$3:B3=B4))=0;"Validé";"Déjà réservé"))
excel intervalle date par siccmdl b 2

@Doux Rêveur, ça fonctionne nikel et le contrôle sur la colonne vide est un vrai +. Merci, je vais essayer de me familiariser avec cette formule.

RE

Comme déjà dit, un tableau structuré ne doit pas contenir de ligne vide sans perdre 95% de ses possibilités.

Si on respecte la règle le contrôle de cellule est inutile...

Bonjour,

Je reviens sur mon problème initial. La formule renvoie des informations erronées dans certains cas de figure que j'ai matérialisées dans le tableau ci-joint (onglet form1). Ne faudrait-il pas prendre en compte l'ordre de la date de réservation initiale ?

Bonjour,

c'est différent de la demande initiale : il faut donc prendre en compte la combinaison des colonnes C et D ?

Si oui, vous pouvez mettre ceci en I2 ;

=SI(C2="";"";SI(SOMMEPROD((E2>=E$1:E1)*(E2<=F$1:F1))*SOMMEPROD(((C$1:C1=C2)*(D$1:D1=D2)))=0;"Creneau libre";"Déjà réservé"))

Mes erreurs sont corrigées ! Ca a l'air de fonctionner !

Si je comprends bien, pour une réservation dont l'intervalle fait déjà l'objet de tout ou ou partie d'une réservation, c'est celle qui a fait l'objet d'une réservation antérieure qui sera considérée comme "créneau libre". Merci, je suis toujours autant bluffé par cette formule. Je ne pensais pas cela possible.

De rien !

La formule compare les données de chaque ligne avec toutes celles du dessus ;

- si son début est supérieur ou égal à une date de début

- et inférieur ou égal à une date de fin

- et qu'il s'agit du même article,

alors ça renverra au moins 1, donc différent de 0, donc renvoie FAUX, donc Déjà réservé.

On n'a donc pas besoin de comparer la date de fin à celles du dessus, ça n'apporterait rien.

Un outil très utile est l'évaluation de la formule pour voir le développement des étapes du calcul.

Pour ça il suffit de sélectionner une cellule contenant une formule, aller dans l'onglet Formules, Évaluer la formule, et cliquer autant de fois que nécessaire sur évaluer.

Ça permet de voir où ça coince en cas d'erreur.

Et de voir comment fonctionne une matricielle, même quand il n'y a pas d'erreur.

Rechercher des sujets similaires à "verification intervalle entre dates"