Recherche du dernier enregistrement en fonction d'un critère

Bonjour à tous,

Je vous expose mon souhait

Je dispose d'une liste de 3 livreurs avec date d'arrivée et heure d'arrivée, cette bdd est triée par date et heure d'arrivée, et je souhaite ne pas modifier ce tri.

Je veux avec une solution qui passe par des formules et sans macros, tester l'heure d'arrivée de la dernière livraison.

livreur arrivée heure résultat

a 10/11 10h11 OK

a 10/11 10h13 NOK

b 10/11 10h15 OK

a 10/11 10h17 NOK

b 10/11 10h35 OK

La règle de fonctionnement de la formule de résultat :

Si pour un même livreur, la livraison précédente est supérieure à 20 minutes alors OK

Sur ce principe, tout va bien tant que les livreurs se suivent.

Le plus gros challenge est de retrouver l'heure d'arrivée de l'avant derniere livraison du livreur considéré.

il est possible de se limiter aux XX avant dernieres livraisons, la solution EQUIV n'est pas satisfaisante, la valeur retournée est la première retouvée parmi les XX dernières livraisons,

il faudrait un EQUIV qui renvoie la dernière valeur du livreur parmi les XX dernières livraisons

Merci beaucoup de votre aide, et bon courage

Salut Olivier,

Pour quelqu'un qui demande de l'aide, tu es bien exigeant ; tu veux ceci, tu veux cela, mais tu ne veux pas de macro ! Et si ta solution passait par une macro ???? De plus la langue français n'est pas avare en temps ; le conditionnel existe aussi (je voudrais, je souhaiterais, etc.). Regarde à ce sujet le lien ci-dessous :

https://forum.excel-pratique.com/viewtopic.php?t=13

Tu ne joins aussi aucun fichier, il est donc difficile de savoir si l'on a bien compris ta question. Dans le doute, j'ai essayé de créer moi-même un fichier qui devrait correspondre au tien.

https://www.excel-pratique.com/~files/doc/20081119b.xls

Dans les colonnes B, D et E, j'ai repris tes données. C'est dans ces colonnes que tu devrais inscrire de nouvelles entrées.

Dans les colonnes A, C et F, j'ai mis des formules que j'ai recopiées vers le bas jusqu'à la ligne 28 (à recopier plus bas si nécessaire). Le résultat dans la colonne F devrait être celui que tu attends, si tu t'es bien exprimé dans ta demande (tu dis que la dernière livraison devrait être supérieure à 20 minutes, alors qu'entre les deux livraisons de b, tu as exactement 20 minutes et tu indiques « OK » comme résultat. Je présume donc que tu as voulu dire supérieur OU EGAL à 20 minutes). Dans tous les cas, si mon résultat s'approche de tes souhaits, on peut le peaufiné.

Bonne soirée.

Bonjour au forum,

Pour me faire plaisir, solution VBA !

les dates sont supposées être entrées avec la fonction MAINTENANT()

https://www.excel-pratique.com/~files/doc/Livreurs2.xls

Bonne journée

Claude

édit: version2

Bonjour à tous,

Merci beaucoup pour ces solutions, elles correspondent toutes à mon attente.

Excusez la façon triviale de la demande, c'est vrai, un souhait est toujours plus poli.

Je vais donc vous expliquer pourquoi je ne souhaitais pas que la solution passe par une macro.

Cette formule va être copier dans une feuille qui va contenir les données, les données vont être importées à partir d'une insertion automatique de données externes, avec recopie automatique des formules jouxtant la base de données, si une solution avait pu etre trouvée sans macro, c'était encore mieux.

Je viens de trouver une autre solution qui passe par les formules matricielles

à savoir :=SI(B59=B60;SI(C60-MAX(SI($A$2:A59=A60;$C$2:C59;""))>=$P$1;"OK";"NOK");"OK")

si (jour de la ligne sup=jour de la ligne ; si (heure d'arrivé - maxi de l'heure d'arrivé des 57 livraisons précédentes si le livreur est = au livreur de la ligne alors )est supérieure à la consigne P1 soit 20minu alors ok sinon NOK, sinon OK puis que c'est le jour suivant .

https://www.excel-pratique.com/~files/doc/20081119b_1_.xls

Encore merci de votre aide et à bientôt

Rechercher des sujets similaires à "recherche dernier enregistrement fonction critere"