Hier ist ein Vorschlag, wie man das lösen könnte. Dabei werden alle nicht leeren Zellen mit bestimmten Farben gefüllt, weshalb in diesen wenigstens `{}` stehen muss.
**Update:** Entsprechend dem Kommentar von @Ijon Tichy wird zur Bestimmung der benötigten Spaltenbreiten jetzt die `pgfmath` Funktion `width` verwendet, da der ursprüngliche Vorschlag mit der aktuellen `tikz/pgf` Version nicht mehr funktioniert. Wie von ihm ebenfalls erwähnt, ist dabei zu beachten, dass bei deutschen Spracheinstellungen zusätzlich die TikZ-Bibliothek `babel` geladen werden muss, damit die benötigte `"…"`-Syntax funktioniert. Würde für die deutschen Spracheinstellungen das Paket `polyglossia` genutzt, dann muss die TikZ-Bibliothek `babel` vor diesem geladen werden.
\documentclass[margin=5pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{matrix,babel}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{matrix}
\colorlet{mbg}{lightgray!50}
\colorlet{mbb}{blue!15}
\colorlet{mbs}{green!10}
\begin{document}
\begin{tikzpicture}[
text depth=0.7ex,
text height=2.3ex,
]
\matrix (m) [
matrix of nodes,
row sep=0pt,
column sep=0pt,
minimum width=3ex,
text depth=.5ex,
text height=2ex,
inner sep=.25ex,
nodes={fill=mbg},
font=\ttfamily,
align=center,
row 1/.style={nodes={fill=white},font=\bfseries},%erste Zeile
mbbspalte/.style={%Einstellungen für die ersten 4 Spalten
text width=#1,
font=\rmfamily,
every even row/.style={nodes={fill=mbb}}
},
column 1/.style={mbbspalte=1.25*\widthof{Rang}},
1/.style={mbbspalte=1.25*width("Rang")},
column 2/.style={mbbspalte=1.25*\widthof{Gewicht},column 2/.style={mbbspalte=1.25*width("Gewicht"),column sep=1ex},
column 3/.style={mbbspalte=1.25*\widthof{Anzahl},column 3/.style={mbbspalte=1.25*width("Anzahl"),column sep=1ex},
column 4/.style={mbbspalte=1.25*\widthof{Nr.},font=\ttfamily},
4/.style={mbbspalte=1.25*width("Nr."),font=\ttfamily},
column 5/.style={text width=\widthof{Das width=width("Das ist ein Testkriterium},font=\rmfamily},
Testkriterium")+2pt,font=\rmfamily},
row 11/.style={nodes={fill=mbs}},%letzte Zeile mit anderer Farbe gefüllt
]
{% überall dort wo ein Node sein soll, muss wenigstens {} stehen
Rang&Gewicht&Anzahl&Nr.& Bewertungskriterium \\
{}&{}&{}&a&Das ist ein Testkriterium\\
& & & & &{}\\
{}&{}&{}&b&Das ist ein Testkriterium& &{}\\
& & & & &{}& &{}\\
{}&{}&{}&c&Das ist ein Testkriterium& &{}& &{} \\
& & & & &{}& &{}\\
{}&{}&{}&d&Das ist ein Testkriterium& &{} \\
& & & & &{}\\
{}&{}&{}&e&Das ist ein Testkriterium\\[1ex]
&{}&{}\\
};
%Umrandungen
\foreach \c in {1,...,5}% für erste Zeile
\draw(m-1-\c.north west)rectangle
([yshift=\pgflinewidth,xshift=-\pgflinewidth]m-1-\c.south east);
\foreach \c in {1,...,4}% für die ersten vier Spalten
\draw(m-1-\c.north west)rectangle
([yshift=\pgflinewidth,xshift=-\pgflinewidth]m-10-\c.south east);
\end{tikzpicture}
\end{document}
![alt text][1]
[1]: http://texwelt.de/wissen/upfiles/praeferenzmatrix_2.PNGhttp://texwelt.de/wissen/upfiles/tw_praeferenzmatrix.png