Keval a une table de plus de 5 000 étudiants répartis sur 22 filières. En regard du nom de chaque étudiant dans chaque ligne de ce tableau est indiqué le cours auquel l’étudiant est inscrit. Keval aimerait, sur une feuille de calcul différente, mettre un nom de cours dans la cellule A1, puis afficher Excel, à partir de la ligne 3, tous les étudiants de ce cours, comme extraits de la liste. Il se demande s’il existe un moyen de faire cela avec une formule.

La meilleure solution à ce problème dépendra, en grande partie, de la façon dont vos données sources sont organisées. Si vous n’avez que deux colonnes (nom de l’étudiant et nom du cours), il est possible que vous n’ayez même pas besoin d’utiliser une deuxième feuille de calcul. Au lieu de cela, vous pouvez obtenir en utilisant les capacités de filtrage d’Excel. Filtrez simplement sur le contenu de la colonne qui contient le nom du cours et vous pouvez facilement limiter ce qui est affiché aux seuls étudiants du cours.

Si les informations doivent apparaître sur la deuxième feuille de calcul, il peut être préférable d’utiliser une formule matricielle pour extraire les étudiants. Mettez le cours souhaité dans la cellule A1, puis la formule suivante dans la cellule A3:

=IF(COUNTIF(Sheet1!$B$1:$B$5000,$A$1)<ROW()-2,"", INDEX(Sheet1!$A$1:$A$5000,SMALL(IF(Sheet1!$B$1:$B$5000=$A$1, ROW(Sheet1!$B$1:$B$5000)),ROW()-2)))

N’oubliez pas qu’il s’agit d’une formule unique et vous devez la saisir dans la cellule en appuyant sur Ctrl + Maj + Entrée. Copiez la formule vers le bas dans suffisamment de cellules pour qu’elle puisse accueillir votre plus grande classe. La formule suppose également que les données source sont dans les lignes 1 à 5000; si ce n’est pas le cas, vous souhaiterez modifier la formule pour refléter la plage appropriée.

Une autre approche consiste à créer un tableau croisé dynamique basé sur la liste des étudiants / cours. Tout ce que vous devez faire est de vous assurer que le nom du cours et les champs du nom de l’étudiant se trouvent dans la zone « ligne » du tableau croisé dynamique. Mettez le champ du nom du cours en premier et le champ du nom de l’étudiant en second, et vous obtiendrez une liste de tous les cours avec les étudiants sous chaque nom de cours.

Si vos données source sont associées à des informations supplémentaires (telles que les notes, les adresses, les devoirs de livres, etc.), vous pouvez envisager de travailler avec un programme de base de données réel, tel qu’Access. Vous pourrez manipuler et extraire des données à l’aide d’outils supérieurs à ceux d’Excel.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (12346) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.

Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Compiling_a_List_of_Students_in_a_Course [Compilation d’une liste d’étudiants dans un cours].