Vertical Alignment in multirow using cells with >1 lines

From my experience multirow is not capable of a correct vertical alignment, if it spans multi-line cells. You can, however, adjust the alignment manually using the fixup-parameter:

% \multirow{nrows}[bigstruts]{width}[fixup]{text}
\multirow{-10}{*}[3em]{\cellcolor{yellow}\begin{sideways}TEST\end{sideways}}

Other possibilities for solving this problem are discussed in "Centering mutirow text in a table whose cells contain several lines of text" and "How can I achieve proper vertical spacing for long blocks of text within a \multirow?".


This table is easy and straight forward to produce using cals. Nothing special, only standard commands:

\documentclass[a4paper, 11pt]{article}
\usepackage{cals, xcolor, rotating}
\usepackage[margin=2.5cm]{geometry}


\let\nc=\nullcell                                                  % Shortcuts
\let\sc=\spancontent

\begin{document}

\begin{calstable}

% Defining 3 column relativ to each other and relativ to the margins
\colwidths{{\dimexpr(\columnwidth)/1000*100\relax}
            {\dimexpr(\columnwidth)/1000*775\relax}
            {\dimexpr(\columnwidth)/1000*125\relax}
            }
% The tabular fills the text area

% Set up the tabular
\makeatletter
\def\cals@framers@width{0.4pt}   % Outside frame rules, reduce if the rule is too heavy
\def\cals@framecs@width{0.4pt}
\def\cals@bodyrs@width{0.4pt}
\cals@setpadding{Ag}
\cals@setcellprevdepth{Al}
\def\cals@cs@width{0.4pt}        % Inside rules, reduce if the rule is too heavy
\def\cals@rs@width{0.4pt}
\def\cals@bgcolor{}

\def\yellow{\ifx\cals@bgcolor\empty % Define colour on-off switch
\def\cals@bgcolor{yellow!30}
\else \def\cals@bgcolor{} \fi}

\def\tb{\ifx\cals@borderT\relax     % Top border switch (off-on)
    \def\cals@borderT{0pt}
\else \let\cals@borderT\relax\fi}

\def\bb{\ifx\cals@borderB\relax     % Botton border switch (off-on)
    \def\cals@borderB{0pt}
\else \let\cals@borderB\relax\fi}

\def\rb{\ifx\cals@borderR\relax     % Right border switch (off-on)
    \def\cals@borderR{0pt}
\else \let\cals@borderR\relax\fi}

\def\lb{\ifx\cals@borderL\relax     % Left border switch (off-on)
    \def\cals@borderL{0pt}
\else \let\cals@borderL\relax\fi}

% H1
\thead{%
\bfseries
\brow
    \yellow\nc{tlr}\yellow
    \alignL\cell{Foo}
    \alignC\cell{Bar}
\erow
\mdseries
}
% R1
\brow
    \yellow\nc{lr}\yellow
    \alignL\cell{short text}
    \alignC\cell{1}
\erow
% R2 Body
\brow
    \yellow\nc{lr}\yellow
    \alignL\cell{short text}
    \alignC\cell{2}
\erow
% R3 Body
\brow
    \yellow\nc{lr}\yellow
    \alignL\cell{short text}
    \alignC\cell{3}
\erow
% R4 Body
\brow
    \yellow \nc{lr}\yellow
    \alignL\cell{short text}
    \alignC\cell{4}
\erow
% R5 Body
\brow
    \yellow\nc{lr}\yellow
    \alignL\cell{short text}
    \alignC\cell{5}
\erow
% R6 Body
\brow
    \yellow\nc{lr}\yellow
    \alignL\cell{short text}
    \alignC\cell{6}
\erow
% R7 Body
\brow
    \yellow\nc{lr}\yellow
    \alignL\cell{short text}
    \alignC\cell{7}
\erow
% R8 Body
\brow
    \yellow\nc{lr}\yellow
    \alignL\cell{short text}
    \alignC\cell{8}
\erow
% R9 Body
\brow
    \yellow\nc{lr}\yellow
    \alignL\cell{short text}
    \alignC\cell{9}
\erow
% R10 Body
\brow
    \yellow\nc{blr}\alignC\sc{\vfil\begin{sideways}TEST\end{sideways}}\yellow
    \alignL\cell{short text}
    \alignC\cell{10}
\erow
\makeatletter
\end{calstable}\par % \par needed to align the tabular

\end{document}

enter image description here

enter image description here