Effectuer une recherche en fonction de différentes dates

Bonjour à toutes et tous

j'ai besoin de calculer un tarif qui est changeant suivant des plages de dates

je suis en limite de compétence, pouvez vous m'aider à trouver la solution svp ?

https://docs.google.com/spreadsheets/d/1Bfw5LdFaYWI07qT4juuUJpslPm-8dnGZ3zHWlK0rA-g/edit#gid=1459427...

Bonjour,

Un coup de FILTER

=SI(I8=VRAI();FILTER($D$5:$D$82;$A$5:$A$82=H8;$B$5:$B$82<J8;$C$5:$C$82>K8);"")

C'est mis dans la feuille ImoKa.

Bonne Journée

Merci de ton aide Imoka, tu n'a pas trainé pour trouver la réponse

Petite précision, je n'avais pas pensé à ton idée de rechercher dans les termes Semaine et Nuit

la case à cocher n'est là que pour faire une validation manuelle entre ces deux possibilités. Y aurait il une façon de s'en débarrasser ?

D'après mes tests la fonction semaine est ok mais pas Nuit ?

Quand je change les dates, j'obtiens une erreur même en mode semaine

Ton erreur est du que les dates sont sur plusieurs tranches.

Impossible !!!

Sauf modification des tranches

Bonjour,

n'y aurait il pas moyen d'ajouter des conditions en fonctions des dates ?

Bonjour,

Pour la calcul à la nuitée

=SUMPRODUCT(($A$5:$A$82=H5)*($B$5:$B$82<=(J5+sequence(1;K5-J5;0;1)))*($C$5:$C$82>=(J5+sequence(1;K5-J5;0;1)))*($D$5:$D$82))

prend en compte des changements de période

Merci Mikhail, le résultat est là, même si je t'avoue que la formule n'est pas simple .

Tu penses pouvoir faire la meme chose pour les semaines ?

Réaliser une seule formule (Nuitées et Semaines) ?

ok, je regarderai pour les semaines d'ici demain

J'ai commencé à regarder, mais je voudrais préciser certains points

  • les semaines commencent un jeudi ? de toute façon ce sera un paramètre
  • si j'ai bien compris, quelqu'un loue à partir d'un lundi jusque perpète, donc du lundi au mercredi c'est 2 nuits, ensuite un nombre de semaines et enfin le complément en nuits pour arriver à perpète, c'est bien cela ?

Les semaines commencent du Samedi au samedi mais il se peut qu'une personne veuille louer en pleine semaine

mais le principe je pense que tu l'as bien compris

merci de m'aider et de prendre de ton temps

bon week end

Les semaines commencent du Samedi au samedi

mais dans ton fichier, toutes les semaines commencent un jeudi, est-ce à corriger ou y a t'il une raison ?

Pour les semaines complètes, la formule est

=SUM(arrayformula(vlookup(J8+sequence(1;(K8-J8)/7;0;7);sort(query($A$4:$D$82;"select B,C,D where A='"&H8&"' ";0));3;1)))

en considérant que la période commence un début de semaine. Je vais donc assembler les formules pour décompter les jours avant et les jours après les semaines entières.


Pour poursuivre, je dois corriger tes données de base car certaines semaines commencent un samedi, d'autres un jeudi et enfin parfois un mardi, voire même un mercredi.

Ce qui parait curieux aussi c'est que la fin des nuits ne correspond pas à la fin des semaines

Bonjour, J'ai corrigé les dates sur ton onglet, c'est le moins que je puisse faire

Dernière précision est il possible lors du calcul "nuit" d'afficher 0 ou erreur si calcul impossible durant cette période (affiche quelques #NA dans tes formules ?)

Merci

Après de multiples essais il n'est plus nécessaire de combiner les formules "Nuit" et "Semaine" car il est possible qu'il y ait des débordements entre les dates et il vaut mieux les distinguer

je vais faire d'autres essais mais il semblerait que cela fonctionne

je poursuis actuellement sur une copie de ton fichier, de toute façon j'ai repris les formules nuit dans le même esprit que la formule semaine afin de pouvoir afficher un détail

réponse ce soir certainement

Bonjour,

Un mix des 2 formules, voir feuille ImoKa bis

=SI(REGEXMATCH(H5;"Nuit");SOMMEPROD(($A$5:$A$82=H5)*($B$5:$B$82<=(I5+SEQUENCE(1;J5-I5;0;1)))*($C$5:$C$82>=(I5+SEQUENCE(1;J5-I5;0;1)))*($D$5:$D$82));SOMME(ARRAYFORMULA(RECHERCHEV(I5+SEQUENCE(1;(J5-I5)/7;0;7);SORT(QUERY({$A$4:$D$82};"select Col2,Col3,Col4 where Col1='"&H5&"' ";0));3;1))))

https://docs.google.com/spreadsheets/d/1w71kFLLMCxmLLfMgYRmzSDYBYgRwKNWgjvvSxLB7opA/copy

Formule complète ... voir dans le fichier à quoi se réfèrent K6, L6 et M6

=iferror(SUM(arrayformula(vlookup(if(WEEKDAY(L6;2)=6;;L6)+sequence(1;(if(WEEKDAY(L6;2)=6;;L6-WEEKDAY(L6+1;2)+7)-if(WEEKDAY(L6;2)=6;;L6));0;1);sort(query($A$4:$D$76;"select B,C,D where A='"&K6&"Nuit"&"' ";0));3;1))))+iferror(SUM(arrayformula(vlookup((L6-WEEKDAY(L6+1;2)+7)+sequence(1;((M6-WEEKDAY(M6;2)+6)-(L6-WEEKDAY(L6+1;2)+7))/7;0;7);sort(query($A$4:$D$76;"select B,C,D where A='"&K6&"Semaine"&"' ";0));3;1))))+iferror(SUM(arrayformula(vlookup(if(weekday(M6;2)=5;;M6-WEEKDAY(M6;2)+6)+sequence(1;(if(weekday(M6;2)=5;;M6)-if(weekday(M6;2)=5;;M6-WEEKDAY(M6;2)+6));0;1);sort(query($A$4:$D$76;"select B,C,D where A='"&K6&"Nuit"&"' ";0));3;1))))
  • K6 = logement (sans la notion de Nuit et Semaine)
  • L6 = jour d'arrivée
  • M6 = jour du départ (donc seul la veille est pris en compte dans le calcul)
  • A4:D76 est ici la base de prix

J'ai aussi inclus un détail des semaines complètes et des nuitées avant et après pour compléter le séjour.

Mais tu peux en effet prendre les formules séparément, pour les nuitées et pour les semaines

=SUM(arrayformula(vlookup(L20+sequence(1;(M20-L20);0;1);sort(query($A$4:$D$76;"select B,C,D where A='"&K20&"' ";0));3;1)))

et

=SUM(arrayformula(vlookup(L26+sequence(1;(M26-L26)/7;0;7);sort(query($A$4:$D$76;"select B,C,D where A='"&K26&"' ";0));3;1)))

dans ce dernier cas (semaine) les arrivées et départs doivent impérativement un samedi sinon le calcul peut donner un résultat erroné.

Un grand merci à tous les deux ! j'avoue que j'ai le cerveau en surchauffe avec vos formules

je dois faire des essais ce soir et je vous dirai ce qu'il en est

Merci de votre investissement

Indépendamment du fichier que j'ai posté, j'ai remis dans le tien les formules sans cumul entre Nuitées et Semaines, j'ai revu les formules pour qu'elles puissent aussi être détaillées par jour ou semaine. Prends un aspirine.

Dans ton fichier, les semaines ne commencent toujours pas un samedi.

Rechercher des sujets similaires à "effectuer recherche fonction differentes dates"