Bonjour,
une formule qui s'adapte à la plage minimum nécessaire :
=MAX(DECALER($C$1;EQUIV(A2;A:A;0);;NB.SI(A:A;A2)))
même avec 1 millions de lignes ça ne la gènera pas.
Je ne pense pas qu'une macro sera plus rapide.
VBA travaille avec un seul thread, les feuilles avec tous les threads dispos (4, 8, 12 calculs simultanés selon le proc)
Nécessite que la feuille soit triée par sites comme ton exemple
eric