具有分割和合併儲存格的複雜表格

具有分割和合併儲存格的複雜表格

我想製作一張類似於下面螢幕截圖中的表格。我可以使用 \multicolumn 用 S1、S2 等創建第二行。複雜表

答案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}

點擊右側的“鏈接”和“相關”鏈接,以了解有關合併的更多資訊。

最後一句話:考慮不要使用這麼多行。如果有意的話,這樣的網格可能有助於稍後輸入數據,否則可能會更難以閱讀。

相關內容