Aide SommeProd

thibaut_francois -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Petite pièce jointe pour expliquer ma demande

http://www.cjoint.com/c/EJtkkcvZTLp

J'ai une feuille Séjours (date entrée et date sortie d'une chambre) & une autre Prestation avec des prestations effectuées.
Le lien entre les 2 feuilles est le N° du dossier.

J'ai besoin de trouver dans ma feuille prestation, la chambre qui a eu la prestation (en fonction de la date et l'heure).

Sommeprod fonctionne très bien, sauf lorsque je n'ai pas la Date de Sortie dans la feuille Séjours.

Cela signifie que la personne n'est toujours pas sortie au moment où j'ai besoin de faire mon lien...

Comment intégrer dans SOMMEPROD que si ma date de sortie est vide, qu'il peut considérer la date et heure de sortie comme un type 31/12/2099 00h00 ?

2 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Sans doute plus léger, évite la double matricielle, validation simple :
=SOMMEPROD(((J2+K2)>=(A2:A7+B2:B7))*(((J2+K2)<=(D2:D7+E2:E7))+(E2:E7=""))*(M2=H2:H7)*(G2:G7))

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
1
thibaut_francois
 
Merci ! ça fonctionne ! Eriiic, comme souvent : balaise :)
Tu peux m'expliquer l'ajout que tu as fait : +(E2:E7="") please ?
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
C'est pour remplacer le SI() sur matrice qui obligeait à valider en matriciel le Sommeprod()
+(E2:E7="")

+ est l'équivalent du OU logique.
donc ajoute VRAI sur le test 'heure de fin' ((J2+K2)<=(D2:D7+E2:E7)) si elle est non saisie pour forcer dans ce cas.
eric
0
thibaut_francois
 
Hinn ! Ok !! Merci
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Tiens, j'avais répondu. Et le post apparait à nouveau comme non lu dans ma liste, bizarre ça...
Je répète donc :
+ est l'équivalent du OU logique.
J'ajoute donc VRAI au test de l'heure si elle est non saisie, pour forcer la validité dans ce cas.

Ce qui permet de se passer du Si() qui nécessite la validation matricielle du Sommeprod()
eric
0
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
Bonjour,

essaye ça :

=SOMMEPROD((Séjours!$H$2:$H$7=D3)*((Séjours!$A$2:$A$7+Séjours!$B$2:$B$7)<=(Prestation!A3+Prestation!B3))*SI(Séjours!$D$2:$D$7<>0;(Séjours!$D$2:$D$7+Séjours!E3:E8)>=(Prestation!A3+Prestation!B3);1)*(Séjours!$G$2:$G$7))
0
thibaut_francois
 
Merci Djidji, mais j'ai l'impression que ça fonctionne pour les N° Dossier qui n'ont pas de date de sortie... mais plus pour les autres cas (quand je descends la formule)
0
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700 > thibaut_francois
 
re,
J'ai repris ce que tu as écris, et maintenant, ça a l'air de fonctionner !
https://www.cjoint.com/c/EJtrNEC0EaV
0
thibaut_francois
 
^^ Toujours casse tête :D
La 1ère ligne rapporte 0, alors qu'elle devrait mettre la chambre 3320... Et la 3ème ligne cumule les 3 N° de chambre pour un résultat de 9975 au lieu de 3327.
0
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700 > thibaut_francois
 
re

Ça fonctionne, mais je ne sais pas pourquoi, il faut revalider a chaque fois la nouvelle cellule, ou la cellule modifiée

re
j'ai changer de fichier, et cette fois, il n'y a plus ce probléme.
https://www.cjoint.com/c/EJuqXNRdLYV

PS: ton fichier a l'air "pourri" !
0
thibaut_francois
 
^^
0