Hi j,
Well, that throws a spanner into the works, so to speak.
COUNTA, used in SG's example, won't count empty spaces, but will count anything in the column that is beyond the first empty space.
MATCH, used in my example, will match a specific value contained in a cell, but won't match an empty cell, or a cell containing a null string.
Some questions regarding the tables shown:
There are four tables shown in the top image. I assume this is the table set used to record completion dates for one student. Is there a purpose for splitting each student's record onto four tables?
In the illustrated configuration, what is the complete cell address for cell B4 on Matt's copy of each of the tables shown in the top image, and for Josh's copy of the Short Brief table. (Trying to get some idea of the full structure here.)
(Sheet-name::Table-name::B4)
Here's an example using a single table for each student. In Matt's table, the 'empty' date cells all contain a single space. Match finds the first 'empty' cell in each date column by searching for a single space.
One issue there is that it makes for a very fragile table. If a date is entered in error, and then removed without replacing the space, the formula will fail to find that cell, should it be the first 'empty' cell in the column.
A partial solution is to use a visible character in place of the empty space—possibly an even more visible one than I chose for Josh's table below. Formulas follow the illustration.

Formulas: The student tables contain no formulas. All columns are entered data, and 'empty' cells in the Completed columns contain either a single space (Matt) or a single hyphen (Josh).
SG's post reminded me that I often default to using OFFSET, mostly because it's familiar to me and usually will do the job. But INDEX + INDIRECT, which I too often neglect is a good choice, too, and one I need to look at more often, so I've used that set along with MATCH here.
There's a single formula used on the Summary table, but the parameters need to be manually changed in each of the cells using it due to the arrangement of the source and summary tables.
Summary::B2: =INDEX(INDIRECT(B$1&"::A"),MATCH(" ",INDIRECT(B$1&"::B"),0))
Match looks for the first space ( " " ) in column B of the table named in cell B1 of its row in its table, then passes the count of rows to get to that value to INDEX. INDEX returns the value in the same row of column A of the same table.
The formulas in B3, B4 and B5 are the same, except for the letters indicating the Completed column and the sequence names for that cell.
Summary::B2: =INDEX(INDIRECT(B$1&"::A"),MATCH(" ",INDIRECT(B$1&"::B"),0))
Summary::B3: =INDEX(INDIRECT(B$1&"::C"),MATCH(" ",INDIRECT(B$1&"::D"),0))
Summary::B4: =INDEX(INDIRECT(B$1&"::E"),MATCH(" ",INDIRECT(B$1&"::F"),0))
Summary::B5: =INDEX(INDIRECT(B$1&"::G"),MATCH(" ",INDIRECT(B$1&"::H"),0))
The formulas in C2 - C5 co through the same set of column changes, but also change the column from which INDIRECT gets the name of the Table to do the searches on. And MATCH is instructed to look for a hyphen ( "-" ) rather than a space.
Summary::C2: =INDEX(INDIRECT(C$1&"::A"),MATCH("-",INDIRECT(C$1&"::B"),0))
Note that the student tables need one extra row beyond the longest list of sequences to present a 0 in the summary table indicating all sequences of that type have been completed (As in the first cell in Josh's column.)
Regards,
Barry