Dans une colonne avec du texte, vous pouvez trouver la dernière ligne qui a une valeur spécifique avec cette formule. Il s'agit d'une formule de tableau qui doit être confirmée par Ctrl+Shift+Enter.
=MAX((A1:A100="stack")*(ROW(A1:A100)))
Voir la cellule C1 dans la capture d'écran ci-dessous.
Vous pouvez utiliser cette fonction dans un nom de gamme dynamique. Cette formule démarre toujours la plage en A1 et descend jusqu'à la dernière occurrence d'une cellule contenant le texte "pile" :
=OFFSET(Sheet1!$A$1,0,0,MAX((Sheet1!$A$1:$A$100="stack")*(ROW(Sheet1!$A$1:$A$100))),1)
Dans le gestionnaire de noms, vous n'avez pas besoin d'utiliser Ctrl+Shift+Enter, puisque toutes les formules nommées sont automatiquement évaluées comme des formules de tableau. Si vous utilisez cette approche, il serait préférable de limiter le nombre de lignes dans la formule et de ne pas utiliser de références à des colonnes entières.
Notez les fourmis en marche dans la capture d'écran qui entourent la portée actuelle.
Si vous souhaitez inclure toutes les lignes jusqu'à la dernière ligne contenant du texte, vous pouvez utiliser une formule plus simple.
=OFFSET(Sheet1!$A$1,0,0,MATCH("zzzzz",Sheet1!$A:$A,1),1)
Avec Match, vous pouvez utiliser la référence d'une colonne entière.