Souci avec MAP et LAMBDA

Bonjour

Je ne sais pas comment reproduire mon problème sur un fichier d'exemple (quand les données sont plus petite cela fonctionne parfaitement) et pour des raisons de confidentialité je ne peux le transmettre. Je me doute que cela va être difficile à résoudre sans fichier mais peut être auriez vous des pistes de recherche à me suggérer.

J'ai la formule suivante :
SI(ET(C1<Divers!$C2;C1>1);MAP(A2#;LAMBDA(ref;-SOMME.SI.ENS(Mouv[Q. Mouv];Mouv[Réf article];ref;Mouv[Vente/cession];VRAI;Mouc[codede];Divers!$A$2;Mouv[Dtae];"<="&C1;Mouv[Date];">"&C1-364)*RECHERCHEX(ref;STOCK[Code article];Stock[prmp unitaire]))))
En A2 j'ai =UNIQUE(mouv[Réf article])

Jusque là, ma formule fonctionne comme elle le doit. Mais si ma condition est fausse j'ai FAUX qui apparait (ce qui est normal). donc je rajoute Si(ET(..);MAP(...);"") et j'ai droit à une erreur Propagation que ma condition soit Vrai ou fausse.
Ma formule est sensé s'étendre vers le bas et je n'ai absolument rien en bas.

Hey,

Alors potentiellement il y a deux sujets :

1) - Le SI doit être dans le MAP directement car renvoyer une matrice verticale ou juste une valeur ça peut poser problème. Essaie ça :

=MAP(A2#;
 LAMBDA(ref;
  SI(ET(C1<Divers!$C2;C1>1);
   -SOMME.SI.ENS(Mouv[Q. Mouv];
                 Mouv[Réf article];ref;
                 Mouv[Vente/cession];VRAI;
                 Mouv[codede];Divers!$A$2;
                 Mouv[Date];"<="&C1;
                 Mouv[Date];">"&C1-364)
   *RECHERCHEX(ref;STOCK[Code article];Stock[prmp unitaire]);
   "")))

2) J'ai présumé que dans ta formule ici, c'est "Mouv"

image

@+

Le Mouc, c'est une faute de frappe. la formule original n'a pas cette faute.

Je vais suivre votre conseil et intégrer le si à l'intérieur de la formule. Mais ce que je comprends pas, c'est que si je supprime le ;"" , la formule fonctionne trés bien et me renvoie un tableau quand la condition est vrai et me renvoie FAUX quand la condition est fausse.

Bonjour,

C'est vrai qu'avec un petit fichier ce serait top.

C'est assez complexe à comprendre/débuguer mais il faut faire attention avec les SI/ET etc dans les formules matricielles comme MAP car notamment le ET a vite fait d'aggréger les résultats que l'on voudrait vérifier ligne par ligne... en 1 seule vérification. D'où le conseil de Baroute que je rejoins sur le fait qu'intégrer toute la logique dans le LAMBDA "en local" est plus sur.

Après là j'ai vraiment du mal à voir ce qui ne va pas bien, mais j'ai l'impression que votre SI+ET est mal placé. Idéalement il faudrait tout résoudre dans le MAP, comme ça on travaille ligne par ligne.

Dans la mesure du possible, si vous pouvez passer votre tableau + la formule & plages utilisées dans Anonymisation de données pour Excel, ce serait top.

PS : si les tableaux contiennent des formules, passez les dabord en c/c valeurs uniquement.

J'ai encore un peu de mal avec les formules dynamiques mais aprés avoir lu votre explication, tout de suite ça parait vachement plus logique .

Problème résolue.

Content d'avoir pu vous aider, n'hésitez pas à partager la formule corrigée pour d'éventuels futurs relecteurs.

Bonne fin de journée

Voici la formule final:

=MAP($A2#;LAMBDA(ref;SI(ET(C1<Divers!$C2;C1>1);-SOMME.SI.ENS(Mouv[Q. Mouv.];Mouv[Réf article];ref;Mouv[Vente/cession];VRAI;Mouv[codede];Divers!$A$2;Mouv[Date];"<="&C1;Mouv[Date];">"&C1-364)*RECHERCHEX(ref;STOCK[Code article];Stock[prmp unitaire]))))

Rechercher des sujets similaires à "souci map lambda"