Il me semble que ta formule matricielle est sensible au filtre. On filtre le tableau sur la première colonne. Via le filtre, on masque la dernière ligne avec valeur de la première colonne, alors le résultat de la formule est modifiée. ça pourrait jouer des tours à l'utilisateur.
Ta formule est très bien mais c'est la première fois que je m'aperçois de son interaction avec le filtre. Ce doit être à cause du sous-total. En VBA, on a le même type de précaution à prendre quand on recherche la dernière ligne remplie avec l'aide de l'instruction END(xlup). Cette instruction est sensible au filtrage.
Re,
Oui bien sûr tu as tout à fait raison, mais on peut toutefois remplacer SOUS.TOTAL(9 par SOMME.SI() pour contourner le problème de filtre, et SOMME() par SOMMEPROD() pour éviter la validation matricielle.