In case you want to do it using Excel formulas only, you can try the following. Put in cell C1
, the following formula:
=LET(A, A2:A8,values,DROP(REDUCE("",A,LAMBDA(ac,x,
VSTACK(ac,TEXTSPLIT(x,,"; ",1)))),1), ux, UNIQUE(values), cnts,
BYROW(ux, LAMBDA(x, SUM(N(values=x)))),
VSTACK({"Category","Result"},HSTACK(ux, cnts)))
Here is the output:

For more information check my answer to the following question related to the REDUCE/VSTACK
pattern: how to transform a table in Excel from vertical to horizontal but with different length.
If you don't have a large dataset that after joining the entire column won't reach the max cell size (32,767
number of characters), then you can try the following:
=LET(A, A2:A8, values,TOCOL(TEXTSPLIT(TEXTJOIN(",",,A),"; ",",",1),2),
ux, UNIQUE(values), cnts,BYROW(ux, LAMBDA(x, SUM(N(values=x)))),
VSTACK({"Category","Result"}, HSTACK(ux, cnts)))
The second solution is about 100x
faster than the first one.