带有拆分和合并单元格的复杂表格

带有拆分和合并单元格的复杂表格

我想制作一个类似以下屏幕截图中的表格。我可以使用 \multicolumn 创建第二行,其中包含 S1、S2 等。在下一阶段,我无法拆分“V”和“I”的单元格。复杂表

答案1

表格中的垂直规则越少越好。如果我们接受这个公理,那么垂直线的正确数量就是零。它们没有任何用处,只是妨碍阅读。

此外,水平线应谨慎使用,主要用于分隔链接在一起的行块。垂直移动单元格内容是没有必要的:表格主体中的空白单元格意味着“重复上面的值”。

这是我对表格的建议,与 Svend Tveskæg 的建议非常相似,但在行标题的位置上有所不同。

请注意,\cmidrule(lr)用于清楚地说明如何解释列组。

\documentclass{article}

\usepackage{booktabs}

\begin{document}

\begin{table}
\centering
\begin{tabular}{*{16}{l}}
\toprule
\multicolumn{2}{c}{Data1} & \multicolumn{14}{c}{Data2} \\
\cmidrule(lr){3-16}
&& \multicolumn{2}{c}{S1} & \multicolumn{2}{c}{S2}
 & \multicolumn{2}{c}{S3} & \multicolumn{2}{c}{S4}
 & \multicolumn{2}{c}{S5} & \multicolumn{2}{c}{S6}
 & \multicolumn{2}{c}{S7} \\
\cmidrule(lr){3-4}\cmidrule(lr){5-6}\cmidrule(lr){7-8}\cmidrule(lr){9-10}
\cmidrule(lr){11-12}\cmidrule(lr){13-14}\cmidrule(lr){15-16}
&& V & I      & V & I      & V & I      & V & I      & V & I      & V & I      & V & I      \\
\midrule
Subdata1 & Try1 &&&&&&&&&&&&&& \\
         & Try2 &&&&&&&&&&&&&& \\
\midrule
Subdata2 & Try1 &&&&&&&&&&&&&& \\
         & Try2 &&&&&&&&&&&&&& \\
\midrule
Subdata3 & Try1 &&&&&&&&&&&&&& \\
         & Try2 &&&&&&&&&&&&&& \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

在此处输入图片描述

答案2

以下是我的做法(参考了埃格尔合并):

\documentclass{article}

\usepackage[hmargin = 3cm]{geometry} % to avoid `overfull \hbox' warning
\usepackage{booktabs,multirow,makecell}

\def\mc#1#2{\multicolumn{#1}{c}{#2}}
\def\mr[#1]#2#3{\multirowcell{#2}[#1]{#3}}

\begin{document}

\begin{table}
\setlength\tabcolsep{9pt}
\centering
  \begin{tabular}{*{16}{l}}
   \toprule
      \mc{2}{Data1}
    & \mc{14}{Data2} \\
   \cmidrule{3-16}
   && \mc{2}{S1}
    & \mc{2}{S2}
    & \mc{2}{S3}
    & \mc{2}{S4}
    & \mc{2}{S5}
    & \mc{2}{S6}
    & \mc{2}{S7} \\
      \cmidrule(lr){3-4}
      \cmidrule(lr){5-6}
      \cmidrule(lr){7-8}
      \cmidrule(lr){9-10}
      \cmidrule(lr){11-12}
      \cmidrule(lr){13-14}
      \cmidrule(lr){15-16}
    && V & I & V & I & V & I & V & I & V & I & V & I & V & I \\
   \midrule
    \mr[-0.5ex]{2}{Subdata1} & Try1 &&&&&&&&&&&&&& \\
   \cmidrule(l){2-16}
                             & Try2 &&&&&&&&&&&&&& \\
   \midrule
    \mr[-0.5ex]{2}{Subdata2} & Try1 &&&&&&&&&&&&&& \\
   \cmidrule(l){2-16}
                             & Try2 &&&&&&&&&&&&&& \\
   \midrule
    \mr[-0.5ex]{2}{Subdata3} & Try1 &&&&&&&&&&&&&& \\
   \cmidrule(l){2-16}
                             & Try2 &&&&&&&&&&&&&& \\
   \midrule
                             &      &&&&&&&&&&&&&& \\
   \cmidrule(l){2-16}
                             &      &&&&&&&&&&&&&& \\
   \bottomrule
  \end{tabular}
\end{table}

\end{document}

输出

请注意没有任何垂直线;它们带来的困扰往往比帮助更大。

答案3

您无需考虑拆分单元格,但可以合并不同数量的单元格。正如您已经知道的,\multicolumn它的语法非常简单,以下是使用不同合并生成前三行的方法。

  • 我生成一行,所有单元格都是简单单元格
  • 我创建了一行合并的 2 个单元格
  • 我插入了合并的 14 单元格行
  • 我小心地保留了所需的行,并将它们添加到多列格式规范中

\documentclass{article}
\renewcommand*{\familydefault}{\sfdefault}
\renewcommand*{\arraystretch}{1.5}
\begin{document}
\begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
  \hline
  \multicolumn{2}{|l|}{Data1} & \multicolumn{14}{c|}{Data 2} \\
  \cline{3-16}
  \multicolumn{2}{|c|}{} & \multicolumn{2}{l|}{S1} & \multicolumn{2}{l|}{S2}
     & \multicolumn{2}{l|}{S3} & \multicolumn{2}{l|}{S4}
     & \multicolumn{2}{l|}{S5} & \multicolumn{2}{l|}{S5}
     & \multicolumn{2}{l|}{S7} \\
  \cline{3-16}
  \multicolumn{2}{|c|}{} & V & I & V & I & & & & & & & & & & \\
  \hline
\end{tabular}
\end{document}

点击右侧的“链接”和“相关”链接了解有关合并的更多信息。

最后一点:考虑不要使用太多线条。这样的网格可能有助于以后输入数据(如果有意的话),否则可能会更难阅读。

相关内容