None of the following is to contradict tohecz's comment above, especially regarding serif versus sans-serif fonts. But if you can't find a better table design, or can't do a landscape table, then you'll have to do more than just set a font size for the table. You'll probably have to:
- Set a smaller font size for the table
- Set a smaller column separation inside the tabular environment
- Use smaller margins than the LaTeX default
You'll also want to read the documentation on the booktabs
package for some advice on table layout, particularly on avoiding excess rules (and probably all vertical ones). And the siunitx
package is good for aligning columns of measurements.
One result using booktabs
and siunitx
, with dummy body text for size comparison:

Annotated code, broken up for legibility and inline comments (but compiles fine in this form):
\documentclass[a4paper]{article}
\usepackage[margin=3cm]{geometry} % reduce margins to 3cm on all sides
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{lipsum}
\setlength{\tabcolsep}{2pt} % reduce column separation from default of 6pt
\begin{document}
\lipsum[1]
\begin{table}
\caption{Some caption}
\centering
\scriptsize
% default tabular column formatting:
% left-aligned label (date),
% 5 measured values with 2 figures before decimal and 1 after,
% 5 measured values with 3 figures before decimal and none after,
% centered label (power),
% 5 measured values with 2 figures before decimal and 1 after,
% 5 measured values with 3 figures before decimal and none after,
\begin{tabular}{
l
*{5}{S[table-format=2.1]}
*{5}{S[table-format=3.0]}
c
*{5}{S[table-format=2.1]}
*{5}{S[table-format=3.0]}}
% Place a top-of-table rule across all columns
\toprule
% Leave a blank column, span centered label over 10 columns,
% leave a blank column, span another centered label over 10 columns
& \multicolumn{10}{c}{Male} & & \multicolumn{10}{c}{Female} \\
% Place a mid-table rule over columns 2-11 and 13-22
\cmidrule{2-11} \cmidrule{13-22}
% Leave a blank column, span centered label over 5 columns,
% span centered label over 5 columns, span centered label over 5 columns,
% span centered label over 5 columns
& \multicolumn{5}{c}{Weight} & \multicolumn{5}{c}{Height} &
& \multicolumn{5}{c}{Weight} & \multicolumn{5}{c}{Height} \\
% Place mid-table rules over columns 2-6, 7-11, 13-17, and 18-22
% (trimmed on both left and right ends)
\cmidrule(lr){2-6} \cmidrule(lr){7-11} \cmidrule(lr){13-17} \cmidrule(lr){18-22}
% Enclose all repeated headers in braces to keep siunitx from trying to interpret them
Birthday & {Min} & {Q1} & {Med} & {Q3} & {Max} & {Min} & {Q1} & {Med} & {Q3} & {Max} &
Power & {Min} & {Q1} & {Med} & {Q3} & {Max} & {Min} & {Q1} & {Med} & {Q3} & {Max} \\
% Place a mid-table rule across all columns
\midrule
Jan 2012
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
100 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
120 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
340 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
% Place a mid-table rule across all columns
\midrule
Feb 2012
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
100 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
120 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
340 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
% Place a bottom-of-table rule across all columns
\bottomrule
\end{tabular}
\end{table}
\end{document}
The resulting table is legible, but just barely fits in the margins provided. If you had more data or bigger margins, this table would rapidly approach what some people refer to as an "eye chart" table. At that point, you'd definitely have to change the requirements or move away from one giant table entirely. Maybe go to one table for males, one for females. Maybe just put a figure in with confidence interval bars or similar.
\small
if there's no other option), if you can't fit your data into the page, you might use packagerotating
that provides the environmentsidewaystable
, if that is not enough, you have to think out a re-structuring of your table such that it fits. It is possible, but it might take a long time and a lot of trials-and-errors to make it work.