Hey Justin,
Yes, you're right, I was thinking of "regular formulas" vs "array" (though powerful; in my experience take longer to calculate)
I would've also thought that a VBA solution would be quicker, but Roy's knowledge of VBA doesn't really leave room for my assumption
Thanks for your response and effort putting together the Pivot Table
The issue is that I would like the report to end up looking like the PreReport so that the date and instructor are also displayed. Below is the same pic from the WB.

Columns A:D are "refreshed" whenever a new training is added and assigned via userform (this is assigned to groups in bulk). The range on Sheet SignOffDates is also updated via userform.
The PreReport format seems to work well when running reports powered by advanced filter. The layout also feeds a dynamic matrix for ease of viewing for employees and management.
My mistake was setting this up prior to testing the performance of so many array formulas. Whenever a new training is added and assigned, it can take 5 to 7min to update, without the formulas (or when calculations are temporarily set to manual) it renders in 3sec. Though it will have to calculate at some point, and it is likely that management will want to add a new training then immediately run a report to notify staff of an update or what not, and the wait time makes that really tough.
Though the PreReport format would work best for me, I believe that you and Roy have the next best solution by using a pivot table or Power pivot (since combining two ranges)
Still very open to help.
In the mean time I'll post updates to this thread as I discover solutions.