我先来解释第二个,IF函数那个吧。
请注意,这个函数是在B1单元格输入的。
首先要理解MOD(ROW(),3)=1这个判断条件
(1)MOD是余数函数,这个判断条件的意思是:如果所在行与3相除的余数为1
即,如果行数是4,那么就是MOD(4,3)=1,则判断条件成立
如果行数是6,那么MOD(6,3)=0,则判断条件不成立。
所以,在这个条件成立的时候,判断函数IF会取第一个值,即“单行表头工资明细!A$1”。从你发的文件上来看,1这行指的是表头,即“姓名”、“时间”这些项目名。
所以,在生成的新表中,第1行,第4行,第7行……(这些行与3相除的余数都为1),都会生成表头。
(2)而如果这个条件不成立,则第二个IF函数进行继续判断
如果余数为2(第2行、第5行、第8行……),会进行定位函数OFFSET(单行表头工资明细!A$1,ROW()/3+1,0)
这个函数的意思是,以A1单元格为参考值,向下取ROW()/3+1的值,由于2/3,5/3和8/3这样的值都是不足1,2,3的,因此要补一个1上去,所以ROW()/3+1的值,应该是1,2,3……
即新表的B2单元格,以A1为标准,向下取1行,得到原表的A2。
而新表的D5单元格,以D1为标注,向下取2行,得到原表的C3。
(3)如果前面两个条件都不成立,则余数为0,也就是说第3行,第6行,第9行……,根据函数,则得到空值,所以这一行都会变为空行。
这样就得到了那个新表。
CHOOSE函数的原理和这个差不多,前面MOD(ROW(),3)+1是判断条件,后面是按照前面等于1,等于2,等于3的三个结果。
在新表的第3行,第6行,MOD(ROW(),3)+1会等于1,所以输出是空值
在新表的第1行,第4行,MOD(ROW(),3)+1会等于2,所以输出的是表头
在新表的第2行,第5行,MOD(ROW(),3)+1会等于3,所以输出是OFFSET函数,还是定位的一个值。
写了这么多,希望能够帮到你哦!
http://zhidao.baidu.com/question/333850768.html这里比较详细本回答被提问者采纳