Bonsoir,
suite à ton MP je réponds ici.
If age >= 0 And age <= 5 Then Range("B" & i).Value = "1"
If age >= 5 And age <= 10 Then Range("B" & i).Value = "2"
Dans l'absolu ton 1er test devrait être <5 : strictement inférieur à 5
Ca ne génère pas d'erreur car le 2nd test écrase le 1er mais ce n'est pas très clean et peut donner des erreurs d'interprétation à la lecture.
Pour ta formule par contre il faut corriger tes tranches et le test si tu veux un résultat correct :
Perso ça ne serait ni par formule, ni en vba.
Il y a des outils puissants dans excel, dont les TCD : Tableau Croisé Dynamique (TCD) : http://www.mdf-xlpages.com/modules/smartsection/item.php?itemid=109
Avec tu peux aussi regrouper par tranches de valeurs :
Si les données changent, clic-droit sur le TCD et 'Rafraichir'
eric