班別の名簿の使用目的にもよりますが、班別の名簿をすべて作成するのではなく、表示したい班をたとえばA1セルに入力し(入力規則でドロップダウンリストから選択するのが簡単)、その班のデータを一覧表示するなら以下のような配列数式を使うことになります。
たとえば、元データがSheet1にあり、1行目が項目名で、A列に名前、B列に班が入力されているなら、以下の数式を入力し下方向に適当数オートフィルしてください。
=INDEX(Sheet1!A:A,SMALL(INDEX((Sheet1!$B$2:$B$200<>$A$1)*500+ROW($B$2:$B$200),),ROW(A1)))&""
上記の数式入力セルがA3セルならB3セルには以下の式を入力し右方向にデータ列数分、下方向に適当数オートフィルしてください。
=IF($A3="","",VLOOKUP($A3,Sheet1!$A:$E,COLUMN(B1),0))
上記の配列数式は、多用するとシートの動きが重くなりますので、必要以上にデータ範囲やオートフィルコピー数を増やさないようにしましょう。
データ数が多い場合や、すべての班のデータをシートに表示したいときは、配列数式ではなくマクロを利用することをお勧めします。
具体的には、各班でオートフィルタを行い、そのフィルタデータを下の空白セルを含めて大きめに選択して(元データを上書きするときに確実に新しいデータにするため)各シートに貼り付ける操作をマクロの記録で記録してみてください(オートフィルタを取り付けたシートから開始するなら最後にすべての班のデータを表示する)。