作业帮 > 综合 > 作业

函数中公式的意思在我计算工人工资时,每月都要同时出工资条,插入工资表头,然后上网查到这种计算公式=IF(MOD(ROW(

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 19:57:39
函数中公式的意思
在我计算工人工资时,每月都要同时出工资条,插入工资表头,然后上网查到这种计算公式=IF(MOD(ROW(),3)=1,原工资表!A$1,IF(MOD(ROW(),3)=2,OFFSET(原工资表!$A$1,(INT(ROW()/3)+MOD(ROW(),3))-1,COLUMN()-1),""))
但是,我现在想知道每段公式所代表的意思,
整个公式的意思是通过在当前表用组合函数:MOD(ROW(),3) 这个函数的意思是对单元格所在行的行号“即row()”去除3,会得到3种结果(1、2、0)作为依据,分别提取“原工资表”中的表头、员工工资信息、用于分隔的空行.
公式的第1部分:IF(MOD(ROW(),3)=1,原工资表!A$1 即表示如果结果是1,就显示“原工资表”中的“表头”;
第2部分:IF(MOD(ROW(),3)=2,OFFSET(原工资表!$A$1,(INT(ROW()/3)+MOD(ROW(),3))-1,COLUMN()-1) 如果结果是2,就用可以根据指定位置取值的函数:OFFSET() 以“原工资表”中的单元格A1作起始位置,提取指定行的员工信息.这个函数需要指定两个参数,第1个是在起始位置的基础上向上或向下移动多少行来提取新的内容,即“行参数”,公式中的行参数条件是:
(INT(ROW()/3)+MOD(ROW(),3))-1
第2个参数是在起始位置的基础上向左或向右移动多少列来提取新的内容,即“列参数”,公式中的列参数条件是:COLUMN()-1)
当然这些参数在向下或向右复制公式的时候会有所变化,这就能实现根据这些变化而提取不同内容了.最后如果=0,就显示空白,即在每个员工工资表中分隔开了.