工资条格式设置

1.准备知识

row()反回当前单元格行号

mod(被除数,除数)反回余数

ROW()反回当前行号

COLUMN()反回当前列号

offset(基准单元格地址,行偏移量,列偏移量)

(MOD(ROW()-1,3)>0) ,是一个逻辑判断,余数为0则为0,大于0则为1

round(number,digits)取整函数

如果 digits 等于 0,则保留0位小数
如果 digits 大于 0,则保留几位小数
如果 digits 小于 0,使小数点左侧的第几位数开始归零
    

2.思路

第一部分

从A1单元格开始存放工资条

利用函数组合,来完成对每一个单元格的添充。一张工资条由标题和数据两行组成,完成一张后,空一行,在下一行继续制作另一张工资条,所以要有IF函数判断该处是否为空行

if( , , ) 对if函数来说,非0的数全是‘真’

如果当前行号为3,则此行为空行,否则不是空行

MOD(ROW(),3)

如果为空行,则用空值填充该行单元格

if( , , "")

如果不为空行,则用offset(,,)函数来填充行列单元格

指定offset的基准单元格地址:'12月工资表'!$A$3

注:绝对引用

第二部分 :指定offset的编移量

列偏移量

COLUMN(A3)-1

第一个单元格列偏移0,而COLUMN(A3)获取到的是1

行偏移量

(MOD(ROW()-1,3)>0)*ROUND(ROW()/3,0)

第1部分是标题行的偏移量,第2部分是非标题行的偏移量

    第一部分(MOD(ROW()-1,3)>0)使1,4,7,10...行的行编移量为0,保证了标题行的重复出现

    在行编移的函数构建中,判断是否为标题行的函数(MOD(ROW()-1,3)>0)和行编移量的函数的第二部分ROUND(ROW()/3,0)通过乘号‘*’相互作用,若是标题行,则第二部分的值不管是多少,都会被0乘成0,若不是标题行,则偏移量至少为1