Suivi de stock - Fonction filtre avec code erreur #EPARS
Bonjour,
J’ai un onglet entrée - sortie qui recense des mouvements articles et un second onglet BDD qui synthétise ces mouvements.
Dans le tableau BDD je voudrais que Excel affiche automatiquement dans la colonne sortie et la colonne retour les dernières quantités sorties et les dernières quantités retournées en fonction de la date, du code article et de la désignation article. Il n’y a pas besoin de faire de calculs de somme, Excel doit juste faire du reporting.
J’ai tenté d’utiliser la fonction filtre mais je n’arrive pas à m’en sortir avec le code erreur #EPARS ! De plus les valeurs qui s’affichent peuvent être fausses ou dupliquées.
Quelqu’un pourrait-il m’aider à résoudre ce problème s'il vous plaît.
Je vous remercie par avance pour votre aide
Bonjour
Puisque tu utilises des tableaux structurés va au bout de leur logique :
- donne-leur un nom signifiant, par exemple BDD et E_S au lieu de Tableau1 et Tableau2
- utilise la formulation spécifique aux tableaux, par exemple en H3, simplifiée car si ce n'est ni égal ni supérieur c'est donc inférieur
=SI([@[Stock SAP]]=[@[Utilis. libre]];2;SI([@[Stock SAP]]>[@[Utilis. libre]];3;1)) - tes filtres rapportent plus d'une ligne d'où #EPARS : tu as plusieurs sorties répondant aux critères donc en L3
en N3=SOMME(FILTRE(E_S[QTE ENTREE/SORTIE];(E_S[ARTICLE]=[@Article])*(E_S[MVTS]="Sortie")*(E_S[DATE]=MAX(FILTRE(E_S[DATE];(E_S[ARTICLE]=[@Article])*(E_S[LOT]=[@Lot])*(E_S[DESIGNATION ARTICLE]=[@[Désignation article]])*(E_S[MVTS]="Sortie");0)));0))=SOMME(FILTRE(E_S[QTE ENTREE/SORTIE];(E_S[ARTICLE]=[@Article])*(E_S[MVTS]="Retour")*(E_S[DATE]=MAX(FILTRE(E_S[DATE];(E_S[ARTICLE]=[@Article])*(E_S[LOT]=[@Lot])*(E_S[DESIGNATION ARTICLE]=[@[Désignation article]])*(E_S[MVTS]="Retour");0)));0))
Bonjour 78chris,
Merci beaucoup pour cette aide. J'ai modifié mon fichier en fonction des remarques faites. Le code erreur a bien disparût mais Excel ne m'affiche pas les bonnes informations. Il est censé afficher le dernier résultat en fonction de la dernière date d'enregistrement mais certains chiffres sont bons et d'autres faux.
Par exemple pour le n° de lot DL01D9S : il affiche une sortie de 6000 qui est juste mais un retour de 1781 qui est faux qui devrait être de 206. Idem pour le lot 165A187954 où il devrait afficher en sortie 2420 mais il affiche 5415.
Pourriez-vous à nouveau m'aider s'il vous plaît
Bonjour
En fait il répéter toutes les conditions dans les 2 FILTRE
soit
=SOMME(FILTRE(E_S[QTE ENTREE/SORTIE];(E_S[ARTICLE]=[@Article])*(E_S[MVTS]="Retour")*(E_S[LOT]=[@Lot])*(E_S[DESIGNATION ARTICLE]=[@[Désignation article]])*(E_S[DATE]=MAX(FILTRE(E_S[DATE];(E_S[ARTICLE]=[@Article])*(E_S[LOT]=[@Lot])*(E_S[DESIGNATION ARTICLE]=[@[Désignation article]])*(E_S[MVTS]="Retour");0)));0))soit un poil plus court
=SOMME(FILTRE(E_S[QTE ENTREE/SORTIE];(E_S[ARTICLE]=[@Article])*(E_S[MVTS]="Retour")*(E_S[LOT]=[@Lot])*(E_S[DESIGNATION ARTICLE]=[@[Désignation article]])*(E_S[DATE]=MAX.SI.ENS(E_S[DATE];E_S[MVTS];"Retour";E_S[ARTICLE];[@Article];E_S[LOT];[@Lot];E_S[DESIGNATION ARTICLE];[@[Désignation article]]));0))soit carrément optimisé avec un LET définissant les conditions
=SOMME(LET(c;(E_S[ARTICLE]=[@Article])*(E_S[MVTS]=N$2)*(E_S[LOT]=[@Lot])*(E_S[DESIGNATION ARTICLE]=[@[Désignation article]]);FILTRE(E_S[QTE ENTREE/SORTIE];c*(E_S[DATE]=MAX(FILTRE(E_S[DATE];c;0)));0)))que tu peux aussi peux copier en L3 où se pose le même problème
Encore merci 78chris,
Je viens de faire un test avec les 3 nouvelles propositions et tout semple parfaitement fonctionné. Ceci va me faire gagner un temps précieux.
Cordialement