XL 2013 Donner la valeur correspondant à la date la plus récente sous 2 conditions

Zarnir

XLDnaute Nouveau
Bonjour à vous,

Je travaille sur de la gestion de stock et je n’arrive pas à afficher la dernière occurrence d'un intitulé.

Version courte :

Je sélectionne une caisse, je veux la dernière valeur d’un intitulé précis.

Version détaillée :

Je m’explique, comme vous pouvez le voir dans le fichier ci-joint, j’ai un tableau dans lequel je rentre pour une caisse donnée :

  • Son nom
  • La date à laquelle l’opération est effectuée
  • La nature de l’opération.
Plusieurs objets peuvent être trouvés dans ces caisses (Pomme, Poire, Pastèque et Melon).

Pour que nous parlions bien de la même chose, je vais vous illustrer son fonctionnement pour la caisse B.

On réceptionne le 02/01/2020 la caisse B avec une quantité estimée à 17 par le client.

Le 03/01/2020, on extrait une quantité que l’on pèse et qui nous donne 10.

Le 04/01/2020, on expédie cette quantité (-10).

Le 05/01/2020, le client nous rappelle pour nous dire qu’il s’est trompé sur la quantité qu’il a estimé lors de l’envoi et qu’elle n’est plus la bonne. Il faut donc rentrer la nouvelle valeur : 20.

Le plus simple serait de changer la valeur initiale mais les valeurs qui sont saisies dans ce tableau ne doivent pas être effacées…

Le 06/01/2020, on extrait une autre quantité qui est pesée à 5.

Le 07/01/2020, cette quantité est expédiée (-5).

Une fois que toutes opérations sont effectuées, je veux filtrer par Caisse (donc afficher la Caisse B) et voir apparaître la dernière valeur de Réception (la plus récente) dans le tableau du dessus. La valeur attendue pour une Caisse donnée est affichée dans le tableau de droite.

Dans la logique globale, il faudrait qu’Excel « raisonne » comme suivant :

  1. Choix de la Caisse ;
  2. Choix de l’Opération ;
  3. Sélection de la valeur associée à la date la plus récente.
J’ai essayé en imbriquant SOMME.SI.ENS() (pour mettre les critères de Caisse et d’Opération) et un MAX(SI()) (pour faire apparaître la date la plus récente correspondant au critère d’Opération) mais il somme les « Réception » et les « Régulations Réceptions » parce qu’elles ont lieu le jour de la dernière « Réception » (bien que ce ne soit pas la même Opération) et ne garde pas la dernière valeur de « Réception »….

Pour la caisse A, il affiche -5 au lieu de 5 parce qu’il somme -10 et 5 au lieu d’afficher seulement 5…

=SOMME.SI.ENS(G$9:G$4999;$C$9:$C$4999;$C$2;$D$9:$D$4999;MAX(SI($C$9:$C$4999=$C$2;(SI($E$9:$E$4999="Réception";$D$9:$D$4999)))))

On supposera que plusieurs entrées « Réception » ne peuvent pas avoir lieu le même jour (sinon on ne s’en sort pas).

Par contre, une « Régulation Réception » (l’ancienne) doit avoir lieu le même jour que la nouvelle « Réception »

Je précise que je suis sous Excel 2013 et que j’aimerais, dans la mesure du possible, que la solution soit faite avec des formules en évitant les renvois à des cellules affichant des résultats intermédiaires (si possible, sinon tant pis). Le fichier est à destination de personnes n’y connaissant rien en VBA et n’ayant que peu de temps à perdre avec l’aspect « technique » d’Excel.

Je vous remercie infiniment si après avoir lu ce pavé vous avez toujours l'envie de vous pencher sur le problème.

Je suis prêt à reformuler et à détailler différemment si mes explications ne sont pas claires.

Bonne journée/nuit.
 

Pièces jointes

  • Gestion Caisses.xlsx
    10.9 KB · Affichages: 8
Solution
Bonjour,


Dans le fichier ci-joint j'ai nommé vos plages de cellules pour plus de lisibilité, mais vous pourrez revenir à des références de cellules.
Voir si la formule matricielle suivante convient bien : =INDEX(Pommes;GRANDE.VALEUR(SI((Caisses=$C$2)*(Opérations="Réception");LIGNE(Caisses));1)-8)

Cordialement

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,


Dans le fichier ci-joint j'ai nommé vos plages de cellules pour plus de lisibilité, mais vous pourrez revenir à des références de cellules.
Voir si la formule matricielle suivante convient bien : =INDEX(Pommes;GRANDE.VALEUR(SI((Caisses=$C$2)*(Opérations="Réception");LIGNE(Caisses));1)-8)

Cordialement
 

Pièces jointes

  • Gestion Caisses.xlsx
    18.1 KB · Affichages: 18

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 786
Membres
101 817
dernier inscrit
carvajal