介绍了如何用Excel函数实现分栏打印.该技术适用于打印列数较少的Excel表格,以避免出现大量空白。
平时偶尔需要打印一些列数特少的表格,例:单科成绩表、调资清单、施工员年检名单、产品代码表等等。以施工员年检名单来说就只有序号、姓名和证号3列。直接打印时由于3列表格远小于纸张宽度会出现大量空白,不仅难看也很浪费纸张。因此很有必要把表格分栏排满页面再打印,不过Excel并没有分栏功能,要如何实现分栏打印呢?其实在Excel 2007中用函数就可以轻松实现表格的分栏打印。
1.格式设置
用Excel 2007打开需要分栏的“年检名单”工作表(图1)。按住Ctrl键拖动“年检名单”工作表标签复制出一张“年检名单(2)”工作表,并把它重命名为“分 栏”。在“分栏”工作表中按Ctrl+A键全选并按Delete键删除数据,以得到一张边框、行高、列宽、字体均与原表相同的空表。
按所需分栏间距调整第4列宽度,然后选中A1:D1复制,再选中第1行右击选择 “选择性粘贴”,在“选择性粘贴”窗口中选中“列宽”,确定把表格A1:D1的列宽设置复制到所有列。
2.输入公式
在A1输入公式=IF(A2=“”,“”,年检名单!$A1),在A2非空时显示“年检名单”工作表的标题A1否则为空,在B2、C3也输入同样公式,不过要把公式中的$A$1分别改成$B$1、$C$1以引用相应标题。
在A2输入公式=IF(INDIRECT(“年检名单!A”& ROW()+INT(COLUMN()/4)*COUNT($D:$D))=“”,“”,INDIRECT(“年检名单!A”& ROW()+INT(COLUMN()/4)*COUNT($D:$D))),在B2、C2也输入同样的公式并把公式中的A全改成B、C以引用相应列的内 容。
在D2输入1作为计算行数的依据,并设置字体颜色为白色以让1消失。选中A2:D2向下拖动填充柄复制到C20单元格,即可显示首栏的19行数据。最后选中A1:D20复制,再选中1:20行进行粘贴即可生成所有分栏表格(图2)。
公式中ROW()+INT(COLUMN()/4)*COUNT($D:$D)计算出当前单元格数据在原表中的行号。由INDIRECT函数按 行、列号引用单元格,再用IF判断当引用的单元格为空时显示为空。COUNT($D:$D)自动统计每页行数,/4为原表格的列数3+1列分隔用的空列。
3.隐藏空表
上面的引用公式让超出原表总记录数的分栏表格不显示数据,但表格线还是在的,还得设置条件格式让空表格自动隐藏。选中1:20行,单击“开始”选项卡的“条件格式”选择“突出显示单元格规则/其他规则”。
在“新建格式规则”窗口的“单元格值”下拉列表中选择“空值”,单击“格式”按钮,在“设置单元格格式”窗口的“边框”选项卡下单击“无”设置为无边框,确定后没有数据的区域就不会显示边框了(图3)。
4.最后调整
切换到“视图”选项卡单击“页面布局”即可看到每页的分栏情况。直接拖动水平标尺中的左、右边距,让第1页中打印的最后一列正好是用于分栏的空列(图4),这样才能确保各页的分栏数一致。
若想调整分栏间距,直接调整第4列宽度,再复制A1:D1按宽度“选择性粘贴”到第1行即可,当然也得重新再调整左、右边距以确保分栏数一致。若想在每页表格上添加一个总标题的话,现在你可以单击页面上侧的页眉区,直接在页眉中添加标题。
现在看一下每页打印的行数是否适当,从图中可以看出其实还可以再增加两行。我们直接在2:20行间随便选中两行(17:18行),右击选择复 制,再右击选择“插入复制的单元格”,即可增加2行表格。反过来,如果行数过多超出页面,则只要直接在2:20行中任选几行右击选择“删除”即可减少行 数。
现在可以开始打印了。虽然空分栏表不会显示,但由于有公式在还是会打印出空白页。因此打印时得选中全部有数 据的列,单击“Office”按钮选择“打印”,在打印窗口选中“选定区域”再打印才不会打印空白页。或者直接指定打印页码范围也行。以后在年检名单工作 表中填写修改数据后,打开“分栏”工作表即可直接进行分栏打印,无需再做修改。
将文档保存成模板还可用于对其他表格进行分栏打印。你只要把表格连标题带数据一起复制粘贴到年检名单工作表 的A1单元格,即可分栏打印。也不一定要3列,少于3列的表格略做调整同样可以分栏。以2列表格来说,只要在“分栏”工作表中右击第3列列标选择“隐 藏”,再复制A1:D1,按宽度“选择性粘贴”到第1行,然后适当调整左、右边距即可实现2列表格的分栏。
当然超过3列的表格就得修改公式中的列数了,因此想做成模板最好一开始就按最多列的表格设置,再按需隐藏多余列会比较方便。此外,若粘贴的表格 有两行标题,只要在分栏工作表中选中第1行复制,再“插入复制的单元格”增加标题行。然后在A1:C2标题行中按原表合并、设置格式后选中A1:D2复制 粘贴到1:2行即可。