Do not have your employee ID on your department table. You need a department table that just lists departments.
For the example you have given you would have these tables
Code:
tblEmployees
EmpID EmpFN ----> other fields
1 Joe
2 Jill
tblDepartments
DeptID DeptName ---> other department related fields
1 Sales
2 Quality
tblDeptClasses
DeptID ClassID ClassName
1 1 SalesTraining1
1 2 SalesTraining2
2 3 QualityTraining1
2 4 QualityTraining2
tblClassSub
ClassID SubID SubName
1 1 Sales1-TrainingType1
1 2 Sales1-TrainingType2
2 3 Sales2-TrainingType1
2 4 Sales2-TrainingType2
3 5 Quality1-TrainingType1
3 6 Quality1-TrainingType2
4 7 Quality2-TrainingType1
etc...
From here it depends on when you consider someone to have 'completed' training. Is it on the sub class level? or do they have to complete all the sub classes to be marked as complete. Let's assume for the sake of this example that you want to have a completion date on each sub class (because you can use the list of classes for a department to determine whether they have completed all the classes in their department based on your data entry)
so you would have these tables which would contain the actual data from your existing spreadsheet.
Code:
tblEmpDepts
EDID EmpID DeptID
1 1 1 (PK, Joe's employee number, sales department)
2 1 2 (PK, Joe's Employee number, quality department)
tblEDClasses
EDCID EDID SubID CompletionDate
1 1 1 1/1/2011 (PK, tblEmpDepts foreign key, department class, date finished)
2 2 2 1/15/2011
Note: don't use special characters in field names (?, #, % etc) other than the underscore (_).