Bonsoir,
=SI($D2="";"";INDEX($A$1:$L$46;MOD(PETITE.VALEUR(SI(($F$20:$L$46<>0);($F$20:$L$46<>0)*COLONNE($F$20:$L$46)+(($F$20:$L$46<>0)*LIGNE($F$20:$L$46)/100));LIGNE()-1);1)*100;2))&""
Je n'en suis pas l'auteur, mais on va essayer de la décortiquer :
Tu as un tableau F20:L20 dans lequel certaines cellules sont garnies, d'autres vides.
SI(($F$20:$L$46<>0);($F$20:$L$46<>0)*COLONNE($F$20:$L$46)+(($F$20:$L$46<>0)*LIGNE($F$20:$L$46)/100))
La partie de formule ci-dessus renvoie un matrice de chiffres résultant de l'addition du numéro de colonne et du centième du numéro de ligne.
par exemple, supposons que les cellules F20, G21 et F22 contiennent des valeurs (les autres étant vides). On obtient {6+20/100;7+21/100;6+22/100} soit {6,20;7,21;6,22}
Puis PETITE.VALEUR({6,20;7,21;6,22};LIGNE()-1) permet de classer ces valeurs. Je suppose que la formule a été saisie en ligne 2 (à cause du -1). La première valeur est donc ici 6,20.
MOD(6.20;1)*100 nous donne le numéro de ligne de cette valeur.
Enfin avec INDEX($A$1:$L$46;20;2) renvoie donc le contenu de B20.
En résumé cette formule une fois recopiée vers le bas te renvoie le contenu de la colonne B correspondant a une cellule non vide de la colonne F puis G ...etc...
Je ne sais pas si j'ai été clair.