You can start with something like this:

The table on the left is a table I named "Master Student List". The table on the right is named for the particular teacher (in this case I made up the name "Mathias"):
The table on the right can be duplicated, renamed, then updated with the new teacher name (cell C1). to construct this table do the following:
- make a new table with two header rows (as shown)
- enter the following formulas:
A3=MATCH($C$1, INDIRECT("Student Master List :: B"&SUM(A2)+1&":B"&ROWS(Student Master List :: B)), 0)+SUM(A2)
B3=IFERROR(OFFSET(Student Master List :: $A$2, $A3-2, 0, 1, 1), "")
C3=IFERROR(OFFSET(Student Master List :: $A$2, $A3-2, 2, 1, 1), "")
D3=IFERROR(OFFSET(Student Master List :: $A$2, $A3-2, 3, 1, 1), "")
now select A3 through D3 and fill down as needed
The name of the table is only for your information... but the name in Cell C1 is very important. It must match the name of the teacher in the master list.
the notation A3=MATCH($C$1, INDIRECT("Student Master List :: B"&SUM(A2)+1&":B"&ROWS(Student Master List :: B)), 0)+SUM(A2)
means... in cell A1 enter the text "=MATCH($C$1, INDIRECT("Student Master List :: B"&SUM(A2)+1&":B"&ROWS(Student Master List :: B)), 0)+SUM(A2)" but omit the double quotes I typed in this sentence.
I hope this helps you get started