Bonjour BOUR FRED, Sébastien, le forum.
Suite au MP de BOUR FRED dont je le remercie, je me permets de répondre à sa petite question sur le forum au cas où d'autres seraient intéressés par cette solution.
Je voudrai savoir ce que viens faire le (-5) .
Voici une tentative d'explication autour de cette formule:
{=INDEX(
B6:B29;SOMME(SI(B6:B29<>"X";LIGNE(B6:B29)-5;0));)}
La fonction INDEX(
matrice;
num ligne;
num colonne) permet de recupérer la valeur d'une cellule se situant dans une matrice (un tableau à une ou plusieurs colonnes, et une ou plusieurs lignes), à l'intersection d'une ligne et d'une colonne.
Pour un tableau qui ne contient qu'une colonne, l'argument num colonne est facultatif, c'est pourquoi il n'y a rien après le second point virgule, j'aurais pu inscrire 1 au lieu de laisser vide, le résultat eut été le même.
Ici, notre matrice est donc la zone B6:B29, le numéro de ligne est à calculer, et la colonne est la colonne 1 par défaut soit la colonne B.
Pour calculer le numéro de la ligne:
SOMME(SI(B6:B29<>"X";LIGNE(B6:B29)-5;0))La fonction LIGNE() permet de renvoyer le numéro de ligne d'une cellule. Utilisée dans cette formule en matricielle:
{LIGNE(B6:B29)} renvoie une matrice commençant par 6 et finissant par 29 soit {6;7;8;9;10, ... etc ...; 28;29}
Le test de la formule SI(B6:B29<>"X"...) renvoie une matrice résultat VRAI/FAUX, FAUX si la cellule analysée est égale à X, VRAI si la cellule testée est différente de X, soit dans l'exemple du fichier en lien: {FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;
VRAI;FAUX;FAUX;FAUX;etc. ... ;FAUX}
Pour le résultat VRAI qui est en septième position, la fonction LIGNE() renvoie donc le numéro de la ligne, soit le numéro 12.
Or, au sein de la matrice B6:B29, la première ligne de la matrice est la ligne 6, la deuxième ligne de la matrice est la ligne numéro 7, etc. C'est pourquoi dans le calcul du numéro de ligne, je retranche 5 afin que la première ligne de la matrice corresponde à 1 (6-5)
Ainsi, la formule matricielle SI(B6:B29<>"X";LIGNE(B6:B29)-5;0) renvoie la matrice résultat: {0;0;0;0;0;0;7;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}
soit zéro pour les tests "FAUX", et le numéro de ligne souhaité si "VRAI" donc si la cellule est différente de X.
La Somme de cette matrice faisant 7, la fonction INDEX du début devient donc INDEX(B6:B29;7;), soit la 7ième ligne du tableau en partant de la ligne 6, là où se trouve TITI en cellule B12.
En espérant que mes explications pourront vous aider, je vous souhaite bon courage pour votre travail,
DeVline.