MAP de matrices sur colonne dynamique

Bonjour,

J'essaie d'élaborer une formule assez complexe, s'appliquant sur une liste.

Pour l'instant j'ai réussi à créer un "bloc de calcul" qui me convient, pour 1 élément de la liste. Ci-après la formule :

=LET(
k1_;B3;
k2k3;C3#;
combi; ASSEMB.H(k2k3; BYLIGNE(k2k3;LAMBDA(k2_; REDUCE(0;k2k3;LAMBDA(acc;k3_;SI(ET(2*k1_+k2_+k3_=SumL10Max;k2_>=k3_);k3_;acc))))));
k2_;CHOISIRCOLS(combi;1);
k3_;CHOISIRCOLS(combi;2);
couples;FILTRE(combi;(2*k1_+k2_+k3_=SumL10Max)*(k3_>0));

ASSEMB.H(MAKEARRAY(NB(EXCLURE(couples;0;1));1;LAMBDA(l;c;k1_));couples))

Je souhaite maintenant stacker (verticalement) les résultats obtenus en appliquant ce bloc à toutes les valeurs de ma liste (k1, colonne B). Càd. Pour 47, 46, etc.

Je crois que je dois utiliser REDUCE mais je n'arrive pas à le formuler. Si vous aviez un peu d'aide je suis curieux, en attendant je continue de mouliner.

Ci-joint un fichier avec quelques datas.

11stack.xlsx (11.48 Ko)

Re, désolé pour le cassage de tete, la formule "classique" de REDUCE fonctionne, c'est simplement mon bloc qui ne s'adapte pas à toutes les valeurs de la série.

Formule résolue :

=EXCLURE(REDUCE({0\0\0};B3:B10;LAMBDA(stk;val;ASSEMB.V(stk;
LET(
k1_;val;
k2k3;$C$3#;
combi; ASSEMB.H(k2k3; BYLIGNE(k2k3;LAMBDA(k2_; REDUCE(0;k2k3;LAMBDA(acc;k3_;SI(ET(2*k1_+k2_+k3_=SumL10Max;k2_>=k3_);k3_;acc))))));
k2_;CHOISIRCOLS(combi;1);
k3_;CHOISIRCOLS(combi;2);
couples;SIERREUR(FILTRE(combi;(2*k1_+k2_+k3_=SumL10Max)*(k3_>0));{0\0});

ASSEMB.H(MAKEARRAY(NB(EXCLURE(couples;0;1));1;LAMBDA(l;c;k1_));couples)))));1)

Et pour corriger le bloc de base et rendre l'application possible à toutes les valeurs de la colonne, il faut gérer le problème de "aucun couple trouvé", j'ai mis un SIERREUR.

Rechercher des sujets similaires à "map matrices colonne dynamique"