Salut !
Voici un explication pas à pas de la formule :
=SIERREUR(QUERY('Ecrit 1'!A:P; "select avg(P) where D LIKE '"&A4&"%' and P is not null label avg(P)''";0);"")
=Sierreur(...; "") > en cas d'erreur (donc, par exemple s'il n'y pas de donnée) alors on affiche rien.
QUERY('Ecrit 1'!A:P > on utilise Query sur la plage Ecrit 1 de la colonne A à P.
select avg(P) > on fait une moyenne de la colonne P
where D LIKE '"&A4&"%' ou la colonne D débute par ce qu'il y en A4 de la feuille actuelle, j'aurai aussi pu écrire M1, M2, M1 GA, etc... mais au lieu de tout écrire, j'ai simplement fait référence à ta colonne où sont listées les classes.
Ainsi, la moyenne se fait automatiquement pour chaque groupe.
and P is not null > on ajoute une condition pour ne faire la moyenne que là où il y a des notes.
label avg(P)''"; > quand on utilise un opération dans query, comme ave(...) pour faire une moyenne, le résultat s'affiche en 2 cellule :
Là je mets un label, donc un titre qui est "" donc rien, cela permet d'afficher directement le résultat.
;0) > à la fin de query je mets 0 pour dégager l'en-tête qui en en ligne 1 de la plage testé : 'Ecrit 1'!A:P