加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用choose函数作工资条

(2009-06-01 05:20:00)
标签:

杂谈

制作工资条是一个常见的问题,如何快速的将已经做好的工资表整理成工资条,有通过宏制作的,有通过复制粘贴同等行数的标题行然后排序解决的,更多地通过函数进行操作,这里转一个相对简单的利用choose函数解决的。


4个相关函数的简要介绍:


choose函数:CHOOSE(index_num,value1,value2,...),取后面的参数的第n个,例如=CHOOSE(2,A2,A3,A4,A5),即表示选择第二个参数,即A3;


row函数:ROW(reference),取参数中的行数。ROW()即取当前单元格所在的行数;


mod函数:MOD(number,divisor),返回两数相除的余数。MOD(1,3)即为1


offset函数:OFFSET(reference,rows,cols,height,width),以指定的引用为参照,通过给定偏移量得到新的引用。=OFFSET(C3,2,3,1,1)显示单元格 F5 中的值。


下面正式开始:工资表已经做好如下


用choose函数作工资条 - 鱼加熊 - 鱼加熊的博客


在G1中输入公式:=CHOOSE(MOD(ROW(),3)+1,"",A$1,OFFSET(A$1,ROW()/3+1,)),分别向右向下填充,就可以得出工资条了,如下:


用choose函数作工资条 - 鱼加熊 - 鱼加熊的博客


公式分析:


=CHOOSE(MOD(ROW(),3)+1,"",A$1,OFFSET(A$1,ROW()/3+1,)),是以choose函数为框架的,内含四个参数的公式;


1、MOD(ROW(),3)+1   ,根据mod(n,3)的特点,这是以3为循环的数值。即分别为0,1,2,0,1,2,…… 


2、""    即为空格,当第一个参数为0的时候,表现为空格,如前面的G3;


3、 A$1 ,当第一个参数为1的时候,表现即为A1的内容“编号”,随着向右填充,变为B$1的内容“姓名”,依此类推; 


4、OFFSET(A$1,ROW()/3+1,),这个公式的关键,当第一个参数为2的时候,表现为A$1 向下n个单元格(n=当前行数处以3的整数+1,例如在第5行,n=2,即为A$3)。  

0

阅读 收藏 喜欢 打印举报/Report
前一篇:伙伴
后一篇:儿童节
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有