En attendant qu'une meilleure solution soit proposée, en voici une, pas très élégante ni très propre :
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{marvosym,array}
\makeatletter
\def\csdef#1#2{\csname #1def\expandafter\endcsname\csname#2\endcsname}
\def\defcumul#1{%
\csdef{}{cumul#1}{%
\csdef g{total@#1}{0}%
\csdef g{cumul#1}{%
\gdef\Ckbox{\Checkedbox
\csdef x{total@#1}{\number\numexpr\csname total@#1\endcsname+1}%
}%
}%
}%
\csdef{}{total#1}{\csname total@#1\endcsname}%
}
\@for\@iter:=i,ii,iii,iv\do{\expandafter\defcumul\expandafter{\@iter}}%
\makeatother
\begin{document}
\pagestyle{empty}
\begin{center}
\begin{tabular}{|l<\cumuli|c<\cumulii|c<\cumuliii|c<\cumuliv|c|}\hline
& Julie & Albertine & Solange & Thérèse\\\hline\hline
Villefort & \Ckbox & & \Ckbox & \Ckbox\\\hline
Tarare & & \Ckbox & \Ckbox & \Ckbox\\\hline
Sommepy-Tahure & \Ckbox & & & \Ckbox \\\hline
Quend & \Ckbox & \Ckbox & & \Ckbox\\\hline\hline
\textbf{Total} & \totali & \totalii & \totaliii & \totaliv\\\hline
\end{tabular}
\end{center}
\end{document}\end{document}
Voici une autre approche qui utilise `spreadtab` (on y revient...) et qui présente l'avantage de fonctionner pour les très grands tableaux sans avoir besoin de modifier la dernière ligne, celle des totaux. Ce n'est pas très adroit ici non plus ni très élégant, et je suis certain qu'un participant proposera une meilleure solution.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{marvosym,collcell,spreadtab}
\newcolumntype C{>{\collectcell\testcell}c<\endcollectcell}
\def\testcell#1{\IfInteger{#1}{\ifnum#1<0 \number-#1 \else\ifnum#1=1
\Checkedbox\fi\fi}{#1}}
\begin{document}
\spreadtab{{tabular}{|l|*{4}{C|}}}\hline
& @Julie & @Albertine & @Solange & @Thérèse\\\hline\hline
@Villefort & 1 & & & 1 \\\hline
@Tarare & & 1 & 1 & 1 \\\hline
@Sommepy-Tahure & 1 & & & 1 \\\hline
@Quend & 1 & 1 & & 1 \\\hline\hline
@\textbf{Total} & \STcopy>{-sum(b2:[0,-1])} & & & \\\hline
\endspreadtab
\end{document}