R@chid a écrit :
Re,
je vais répondre et je souhaite me répondre sur les questions que j'ai mises sur le fichier.
Voir fichier joint
@ + +
C'est nickel, c'est exactement ça merci.
J'en profite pour faire un point pédagogique des apprentissages tirés de l'étude de ta solution VS ma tentative échouée qui peuvent servir à d'éventuels lecteurs ayant un problème similaire :
1. les tests de logique ne sont pas compatibles avec sous.total (sous.total(9,(2<1)*1)) ne fonctionnera pas
2. pour une raison qui me reste inconnue, l'utilisation matricielle ne fonctionnera pas comme souhaitée si j'essaye de faire une construction de plage en mettant ma cellule de départ puis de décaler l'extrémité de ma plage ( type A7:DECALER(A7,,{0\1\2}) ) tandis que si je définis et modifie l'ensemble de ma plage à l'intérieur du DECALER cela fonctionne très bien ( type DECALER(A7,,{0\1\2},,{-1\-2\-3} )
3. l'utilisation de "sous.total(9,DECALER(A7,,{0\1\2},,{-1\-2\-3}))" permet d'offrir une étape dans le calcul qui renvoie les trois résultats des trois sommes de DECALER sous forme matricielle (donc {somme de mon premier DECALER \ somme de mon deuxième DECALER \ somme de mon 3ieme DECALER} ) ce qui permet par la suite de faire un test logique avec chacun de ces 3 résultats. Tandis que "Somme" renverra uniquement la somme de mes trois DECALER
4.D'une manière générale la "good practice" pour éviter d'avoir à iterer les "{1\2\3}… est tout simplement d'utiliser la fonction LIGNE. Ex pour reproduire la matrice que je viens de faire : ligne(1:3). Il suffit de changer le 3 pour avoir autant de lignes que l'on souhaite. De ce que j'ai pu voir cette astuce est un classique quand il s'agit de calcul matriciel
Bonne journée à tous!