5.选择B1:J3单元格,向下拖拉,直至有数据的最后一行。最后效果见图5。
公式解释:
=CHOOSE(MOD(ROW(),3)+1,“”,单行表头工资明细!A$1,OFFSET(单行表头工资明细!A$1,ROW()/3+1,))
1.CHOOSE函数是选择函数,支持30个参数。第一个参数是选择序号(数值),其余参数是被选值。第一个参数是N则结果返回其余参数中第N个数值。
2.MOD函数是求余数函数,支持两个参数,第一个参数是被除数,第二个参数是除数,结果返回余数。
3.ROW函数是返回指定行行号之函数,若省略参数时则返回当前行。
4.OFFSET函数是返回偏移量之函数。支持五5参数,分别是[参照区域]、[行数]、[列数]、[高度]、[宽度]。
5.“”表示空白,返回空。
本公式巧妙动用MOD和ROW函数产生一个循环的序列2/3/1/2/3/1/2/3/1,再通过CHOOSE函数参数的变化动态地引用工资明细表的数据,其中“”的作用是当前行行号为3的倍数时返回空,从而产生一个空白行,方便制作工资条后裁剪。
当然,实现功能还有很多公式,如用以下IF函数实现等,各位用户自己去多摸索吧:
=IF(MOD(ROW(),3)=1,单行表头工资明细!A$1,IF(MOD(ROW(),3)=2,OFFSET(单行表头工资明细!A$1,ROW()/3+1,0),“”))
双行工资条头设计
先看数据如图6。
双行条头工资条和单行条头实现方法基本相同,仅仅是公式有些差异。现暂列如下:
=CHOOSE(MOD(ROW(),4)+1,“”,双行表头工资明细!A$1,双行表头工资明细!A$2,OFFSET(双行表头工资明细!A$1,ROW()/4+2,))
输入公式后向后拉再向下拉至末行,然后通过前面介绍的方法设置边框,其中部分单元格需去掉左边框或者右边框,使之显得美观。最后结果如下见图7。