Problème avec EQUIV dans BYROW

Bonjour,

Dans le classeur joint, j'ai un problème avec la formule en I2 :

=BYROW(SEQUENCE((NBVAL(A:A)-1)*6;1;A2;"0:10"*1);LAMBDA(arr;DECALER(A1;EQUIV(ENT(arr)+TEMPS(HEURE(arr);0;0);A:A;0)-1;0)))

Alors que la formule en O2 est correcte :

=BYROW(SEQUENCE((NBVAL(A:A)-1)*6;1;A2;"0:10"*1);LAMBDA(arr;EQUIV(ENT(arr)+TEMPS(HEURE(arr);0;0);A:A;0)))
15byrow-sequence.zip (295.06 Ko)

Merci d'avance

Bonsoir à tous !

L'exposé de votre demande laisse entendre que les 2 formules seraient identiques. A l'évidence ce n'est pas la cas.....

J'ai décomposé la formule L2 :

=LET(
plg;2;
seq;SEQUENCE((plg-1)*6;1;A2;"0:10"*1);
m_arr;PRENDRE(seq;1);
decLig;EQUIV(ENT(m_arr)+TEMPS(HEURE(m_arr);0;0);A:A;0)-1;
r;BYROW(seq;LAMBDA(arr;DECALER(A1;EQUIV(ENT(arr)+TEMPS(HEURE(arr);0;0);A:A;0)-1;0)));

z;DECALER(A1;decLig;0);
zz;DECALER(A1;1;0);
decLig
)

Les variables plg, seq, m_arr et declig retournent un résultat qui me semble cohérent et sans erreur.

La variable zz, qui utilise pour le décalage ligne un nombre codé en dur, renvoie un résultat conforme.

Ce qui n'est pas le cas de la variable z (qui utilise la variable declig (=1)).

Ma conclusion : la fonction DECALER, utilisée dans une formule matricielle, n'accepte pas que le décalage ligne soit "variabilisé".

Bonjour et merci pour ta réponse et le travail d'investigation que tu as fait. Pas facile de déboguer ces formules...

Merci encore.

Effectivement, ça fonctionne si on remplace DECALER par INDEX :

=BYROW(SEQUENCE((NBVAL(A:A)-1)*6;1;A2;"0:10"*1);LAMBDA(arr;INDEX(A:G;EQUIV(ENT(arr)+TEMPS(HEURE(arr);0;0);A:A;0);MINUTE(MOD(arr;1))/10+2)))

Encore merci.

Bonjour à tous !

......... Pas facile de déboguer ces formules...

L'apport majeur de ces formules vaut bien quelques contraintes...

Je vous remercie de ce retour.

Rechercher des sujets similaires à "probleme equiv byrow"