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

一个EXCEL小实验:工作项目时间进度表

(2013-06-02 21:19:55)
标签:

it

分类: 五分钟技术控

本文的管理小工具是本人一手一脚弄的,学艺不精,欢迎高手指正。

EXCEL实在是一个很强大的工具,可惜几乎所有教这玩意的书都面目可憎,几乎下决心不让人有兴趣读下去。最近想做一个工作项目的管理工具,埋头翻了下书,按自己的想法搭个框,再一条一条百度想要的函数,以及效果,一个一个去试效果。居然好象能用了。不过,好些百度回来的公式,经我山寨之后虽然能用,却仍然对算法半懂不懂,留待请教高手了。如有兴趣想用的朋友,只管动手试试。

我做的这个东西叫“工作项目管理表”,主要用于登记平时工作中要跟进的项目,并且在另一个表呈现出工作的进度管理。工作簿分两页:一页是工作记录表,另一页是进度表。进度表不用手动更新,由工作记录表透视过去的工作项目汇总表,日期进度表就在汇总表的基础上进行加工。

这个表的原理是用原始登记的数据生成一个透视表,在透视表上用“条件格式”来做出可视化的进度管理。

第一步是做工作记录表,这个表用于记录每个工作项目,字段有“执行人”、“项目”、“要求完成时间”、“工作进度”、“备注”。如下图。

http://s10/mw690/48e4ab63gde2c9b797959&690

输入一定数量记录后,就可以生成透视表了。如下图。

http://s1/mw690/48e4ab63gde2c9e8fd2e0&690

提示:2007版以上,在工作进度的筛选处,剔除“取消”和“已完成”的项目,就可以在透视表中显示得更清爽了。


第三步,在透视表区域旁边,手动在31个单元格上标示从1到31的数字,代表一个月的1——31日。在这一行的上面,每个数字对应的上方单元格,用公式显示当月的1号到31号。

这个公式是:显示当月1号,IF(DAY(TODAY())=1,TODAY(),TODAY()+1-DAY(TODAY()));

如果是显示2号,则是IF(DAY(TODAY())=2,TODAY(),TODAY()+2-DAY(TODAY()));

显示3号,则是IF(DAY(TODAY())=3,TODAY(),TODAY()+3-DAY(TODAY()))。

按照这个规律,依此类推到31号。把这些公式输入后,将单元格格式选为日期,并点选显示为中文的短星期几的格式,就成了现在看到的样子。在下表中,你看到1、2、3、4等日期,是手动添加的,每个日期上方的星期,则是用上面的公式生成的。

http://s11/mw690/48e4ab63gde2ca227a75a&690

我把这些短星期的单元格再添加一个条件格式,如果它的日期是星期六或者星期天,则显示底色为浅蓝色。这个判断日期是星期几的条件公式是:“WEEKDAY(K4,2)=6”和“WEEKDAY(K4,2)=7”,这是设置了两个显示条件,一个是星期六,一个是星期天。这样一来,星期六和星期天就被显示了浅蓝色,清楚多了。公式里的K4,是这一行里表示要显示这种格式的首个单元格的位置。

http://s2/mw690/001kLm1Bzy7ghQmPjNvd1&690

每个项目对应的1——31号单元格,看似空白,其实都是输入了公式的,这个公式是显示当月1号到31号,这个公式是:1号DATE(YEAR(TODAY()),MONTH(TODAY()),1);2号则是DATE(YEAR(TODAY()),MONTH(TODAY()),2);依此类推。

这个公式和上面显示星期那个有什么区别?我请教了部门里的EXCEL小神女,说是一样的结果,不同的运算方式。好了,设置了公式之后,要将字体设为白色,这样,上面看起来就是空白的,其实是有料的喔。

在这些单元格上,我设置了两个条件格式:1、当单元格数值=要求完成时间,显示浅橙色底色;2、当单元格数值=系统日期(也就是当天日期),显示浅绿色底色。当然,字体也要相应设置成底色,这样看起来仍然是没有字的。于是,这些单元格就会在表示当天那格显示浅绿色,在项目要求完成时间标示浅橙色。

在工作记录表和项目汇总表上的“要求完成时间”那一列,我设置了两个条件格式:1、本周内,显示粉红色,条件公式是AND(TODAY()-ROUNDDOWN(C5,0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(C5,0)-TODAY()<=7-WEEKDAY(TODAY()));2、15天内,显示浅黄色,公式是AND(ROUNDDOWN(C5,0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(C5,0)-TODAY()<(15-WEEKDAY(TODAY())));以表示不同紧急度,这两个公式我并不太懂,C5是单元所在的位置标号。

成表是这样的:

http://s12/mw690/48e4ab63gde2ca6c8c7ab&690

以上项目汇总表上的显示,只要在工作记录表上做了更改,项目汇总表上点右键刷新数据之后,上面的显示会自动更新。

我做的工作记录表上,还为一些常规工作设置了自动显示日期,主要针对在每月固定日期都要完成的常规工作,它们会在每个新月份自动更新为新的工作项目完成时间。

比如:每月第1天,公式是DATE(YEAR(TODAY()),MONTH(TODAY()),1);

每个下周一,公式是IF(WEEKDAY(TODAY(),2)=1,TODAY(),TODAY()+8-WEEKDAY(TODAY(),2));

每月12号,公式是IF(DAY(TODAY())=12,TODAY(),TODAY()+12-DAY(TODAY()));

每月最后一个周一,公式是INT(DATE(YEAR(I2),MONTH(I2)+1,-7)/7)*7+2;

每月倒数第二个周一,公式是INT(DATE(YEAR(I2),MONTH(I2)+1,-12)/7)*7+2。

之所以用两个表,是基于这样的原因:一个表用来登记,同时保存所有已做项目,当然为了方便看,可以将取消或者已完成的项目隐藏;另一个其实是透视表,它可以将相同执行人的项目汇总在一起,方便管理,另外日期进度条我只设置了三十行,我想:一个部门同时执行三十项工作已经很忙了吧?如果你在工作记录表上做这些显示设置,那工作量,可是要死人的。

补充:如果想到那种成条状的进度条,如下图

http://s1/mw690/48e4ab63gde76b40b6780&690

这种效果,只要把条件格式中的“单元格数值=要求完成时间”修改成“单元格数据小于或等于要求未完成时间”,即可。

由于一些看过本文的朋友要求下载,我就分享到云笔记,大家自行取用吧:http://note.youdao.com/noteshare?id=ff612867539581492cd971e8fd3f0208

 

0

阅读 收藏 喜欢 打印举报/Report
前一篇:光和影
后一篇:自由空间
  

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

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

新浪公司 版权所有