How can I insert vertical text spanning multiple rows into a table?
You can have this:
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{rotating, graphicx}
\usepackage{makecell, tabularx, multirow}
\renewcommand\theadfont{\normalsize}
\newcounter{rownum}
\begin{document}
\begin{table*}
\renewcommand{\arraystretch}{2}
\settowidth\rotheadsize{\theadfont aligned with data}
\settowidth{\rotheadsize}{Minimum employees}
\setcounter{rownum}{0}
\centering
\begin{tabularx}{\textwidth}{|p{1.25cm}| >{\refstepcounter{rownum}\eqmakebox[N] [r]{\therownum)\enspace}}X|c|}
\hline
& No. of Distinct MMSI Detected & 1 \\
\cline{2-3}
& Average Time Between Messages (moving ships)& 1 \\
\cline{2-3}
\multirowcell{-3}[-4.5ex]{\hspace*{-.6em}\turnbox{90}{\thead{MMSI\\Statistical\\analysis}}}& No. of Dopplegangers & 1\\
\hline
& Total No. of Anomalies &1 \\
\cline{2-3}
\multirowcell{-2}[-4.5ex]{\hspace*{-1.8em}\turnbox{90}{\thead{Anomaly\\Detection \\reports}}} & List of Anomalies by MMSI & See Spreadsheet\\
\hline
& Average Mad Time Between Messages from Same Ship & 1 \\
\cline{2-3}
& Average Number of Messages per MMSI per Hour &1 \\
\cline{2-3}
& Average Age of Messages on Receipt& 1 \\
\cline{2-3}
& Average Age of Messages at System Observation Time& 1\\
\cline{2-3}
& Average Dead Reckoning Error for Moving Ships &1 \\
\cline{2-3}
& Age Distribution Chart& See Figure \\
\cline{2-3}
\multirow{-4}{*}[0.25ex]{\hspace*{2.8em}\turnbox{90}{\thead{Systemic Quality\\analysis}}} & Position Error Distribution Chart& See Figure \\
\hline
\end{tabularx}
\end{table*}
\end{document}