Bonjour,
J'ai une idée, mais il y a sans doute plus optimisé :
Un premier tableau avec les classes, l'age requit minimum, l'age requit maximum :
| classe | age min FORMULE | age min RESULTAT | age max FORMULE | age max RESULTAT |
| A | =date(ANNEE(AUJOURDHUI())-7;8;1) | 01/08/2016 | =date(ANNEE(AUJOURDHUI())-6;7;31) | 31/07/2017 |
B | =date(ANNEE(AUJOURDHUI())-8;8;1) | 01/08/2015 | =date(ANNEE(AUJOURDHUI())-7;7;31) | 31/07/2016 |
Ensuite, à partir des ages des élèves, il est aisé de les comparer afin de trouver dans quelle classe ils sont :
| date naissance | formule | résultat |
| 15/12/2016 | =SI(ET(E3>=B2;E3<=C2);A2;SI(ET(E3>=B3;E3<=C3);A3;"")) | A |
| 01/03/2016 | =SI(ET(E4>=B2;E4<=C2);A2;SI(ET(E4>=B3;E4<=C3);A3;"")) | B |
Il faut juste vérifier si cette logique fonctionne lorsqu'on change d'année (puisque les ages min et max sont faits à partir de la date du jour.
EDIT : solution + simple pour trouver la classe à partir d'une date :
| date naissance | formule | résultat |
| 15/12/2016 | =QUERY(A1:C3;"select A where B <= date '"&TEXTE(E3;"yyyy-MM-dd")&"' and C >= date '"&TEXTE(E3;"yyyy-MM-dd"&"'");0) | A |
| 01/03/2016 | =QUERY(A2:C4;"select A where B <= date '"&TEXTE(E4;"yyyy-MM-dd")&"' and C >= date '"&TEXTE(E4;"yyyy-MM-dd"&"'");0) | B |