甘特图 知乎_如何使用 Excel 绘制甘特图?

————

看了上面几张甘特图,基本上只实现了『计划』和『百分比进度』这两个概念,只有在理想化的一切按照计划发展的情况下才有参考价值。但是实际上执行会提前、也可能延期,进度实时都可能变更,我们应该分开考虑计划图和进度图的功能,并在一张自动图标中实现~先上图:

(直接下载请拖到答案最后)

一、需求分析

首先要满足计划图的功能,还是比较简单的,只需要一条简单的规则:通过输入『计划』开始和结束时间,自动在gantt中表现计划时间条(浅蓝色)

涉及到进度图,我们需要设置几个定义来区分计划内进度、计划外进度(延期或提前)。在我的图表里面只定义了计划内进度(深蓝色)和计划外进度(蓝色斜杠)。当然你也可以根据实际情况作调整,比如如果实际工作中需要严格区分提前和延期,可以将这两个概念分开定义。

于是要满足进度图的功能,我们需要这样几条规则:用深蓝色代表实际执行。其中『计划内执行』用纯深蓝色,『计划外执行』用深蓝色加斜杠

而在使用者跟踪进度的时候,使用场景分为两种:1. 只知道开始时间和大概的工作量,并不清楚完成时间 2. 任务已经完成,知道确切的起始和完成时间。根据这两种场景我们可以定义出来这样的使用规则:根据『计划开始』和『计划结束』时间,可以判断出来管理者预估的工作量

预估工作量=计划结束-计划终止 单位:天根据填入的『实际开始』日期,预估工作量,和百分比进度,可以显示计算出来的进度

计算进度=实际开始+预估工作量*百分比进度 单位:天当实际完成时,使用者填入『实际结束』时间,图表中显示实际开始和结束时间,覆盖之前的计算进度

在执行过程中和实际完成后,都按照『计划内执行』和『计划外执行』的方式进行可视化显示,让管理者一目了然地掌握实际进度与计划的差距

二、功能制作

1. 首先按照喜欢的逻辑画一张表头。由于我首先要制作『计划进度』的功能,所以先把计划开始和结束的数据填上了。

2. 定义『计划进度』。在【公式-定义名称】中新建定义『Plan』

Plan定义返回值是开始和结束时间之间的这一段。这里我用到的公式:

=甘特!F$5=MEDIAN(甘特!F$5,甘特!$C6,甘特!$D6)

3. 下面用【开始-条件格式-管理规则】的功能,将返回的真值填色:

新建一条自定义规则:

【应用区域】选择在整体日期表区域:

这一步做完后,我们会得到一张【计划甘特图】:

4. 下面同理,继续用【定义名称】和【管理规则】功能把上面列出的需求点一条条定义,并在图表中实现。除了上面的『Plan』以外我还定义了这么几个名称:

【已填写『实际开始』和『实际进度』】Actual:计划内进度条

=甘特!C$5=MEDIAN(甘特!C$5, 甘特!$E6, 甘特!$F6)*(甘特!$E6<>0)*(甘特!$F6<>0)Advance:『实际开始』早于『计划开始』,提前段进度条

=甘特!C$5=(甘特!$E60)*(甘特!$F6<>0)Delay:『实际结束』晚于『计划结束』,延期段进度条

=甘特!C$5=(甘特!$F6>甘特!$D6)*(MEDIAN(甘特!C$5, (甘特!$D6+1), 甘特!$F6))

【已填写『实际开始』和『百分比进度』,未填写『实际进度』】Percent:计算进度

PercentEarlier:『实际开始』早于『计划开始』,包括一小段提前进度

PercentLater:『实际开始』大于等于『计划开始』,全部为计划内进度

将以上定义都在条件格式进行编辑:

应用区域均为整个日期表部分。

三、美化调整

这样做出来的表格还有一点点geek和不方便哎,一大堆格子混在一起很难看清行列。对此我做了这么几个优化:隔列灰度显示,便于每日任务的可视化

可以手动设置一个『今日日期』突出显示该列

日期最好可以有微调框

前面两条灰度和突出显示列,用简单的条件格式就可以实现了,公式如下:

突出显示列:=H$5=$F$2

(其中H$5是日期列,$F$2是手动输入的日期值)

隔列灰度显示:=MOD(COLUMN(), 2)=0

最后加一个可爱的微调框,在【开发工具-微调框】添加:

控件格式链接到手动输入日期的单元格:

一个自动甘特图就做好了。完工~

Excel很好玩,但是做起来也蛮麻烦的。上传了一份到网盘,链接: https://pan.baidu.com/s/1gf7WgLX 密码: iwvq

谢谢~

——————————————————————————————————

UPDATE:

关于如何实现跨月,可以用『冻结窗格』功能实现。把全年时间在横栏实现,然后冻结时间区域的第一行第一列的格子,就可以左右上下拖动地看了~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kali 2.0 采用ssh连接登陆

Kali GNU/Linux 2.0 \n \l 安装完kali2.0 采用ssh远程连接尽然会出现“无法连接”的情况&#xff0c;下面就此情况来解决问题 第一步&#xff1a;编辑ssh配置文件 rootrslinux:~# vim /etc/ssh/sshd_config 第二步&#xff1a;重新启动ssh服务 rootrslinux:~# /etc/init.d/ssh …

3.运算符与表达式,控制流

时间&#xff1a;2018年12月8日14:56:25 -------------------------------------------------------------------------------------------- 表达式包括运算符与操作数 1、运算符 2、求值顺序 控制流&#xff08;3种&#xff09; 1、if语句 number 23 guess int(input…

英语口语练习系列-C37-服饰-询问年龄-沁园春-长沙

服饰 clothes or jewelryyour favorite clothes or jewelryjewelrynecklacebraceletearringsgolddiamondbeadbroochbanglecrystalfashionfashionablesuittrendstylishboutiqueuniquepersonalityinterestuniformoccupationindividualitycasual wearcomfortable clothestradition…

因此,甲骨文杀死了java.net

好吧&#xff0c;还没有……但是他们宣布要在2017年5月之前关闭java.net和 kenai。JohnK . Waters 在ADTmag的Kenai和java.net的“日落”一文中接受了我的采访。 由于Oracle几乎没有提供有关已经托管在java.net上的关键项目会发生什么情况的信息&#xff0c;因此本文中编写的大…

snmp的使用

freebsd7.1安装snmp cd /usr/ports/net-mgmt/net-snmp make make install net-snmp相关资料 http://www.net-snmp.cn/ Snmp分2种角色&#xff1a;SNMP管理站&#xff08;manager&#xff0c;我们的本机127.0.0.1&#xff09;和SNMP代理&#xff08;agent&#xff0c;我们…

1个ieee1394端口_请问IEEE1394端口有什么作用?

匿名用户1级2007-07-31 回答IEEE1394标准是一种非专用的、高速的串行总线输入输出标准。它提供了一种连接数字设备的方法&#xff0c;包括个人计算机和用户电子硬件。它独立于平台&#xff0c;可以升级(可扩展)&#xff0c;并在支持对等连接方面很灵活。IEEE1394标准无需将数字…

jsoup 获取html中body内容_Java 进阶 利用Jsoup获取HTML页面的各分页中的标题信息...

简单介绍一下JsoupJsoup是一款Java 的HTML解析器&#xff0c;可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API&#xff0c;可通过DOM&#xff0c;CSS以及类似于Xpath,jQuery的操作方法来取出和操作元素和数据。使用Jsoup&#xff0c;需要导入Jsoup所需Jar包&a…

在Windows下如何安装Tomcat服务器搭建

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP 程序的首选服务器。 在Windows下安装Tomcat服务器的方式有两种&#xff0c;一种是直接安…

剑指offer-3(替换空格)

题目&#xff1a; 实现一个方法&#xff0c;把一个字符数组里面的空格全部替换为“20%”。 思路&#xff1a; 首先呢&#xff0c;要先获取字符数组中有多少个空格以及字符数组中字符的长度&#xff0c;计算出替换后的长度&#xff1b;然后&#xff0c;让一个虚拟指针indexOfNew…

5.模块

时间&#xff1a;2018-12-9 13:40:04 ---------------------------------------------------------- 1、方法 可以创建一个包含函数与变量的py文件 可以用C语言等编写python模块&#xff0c;编译后&#xff0c;在python中使用 import sys#通过import导入sys模块print(The co…

javaee 设计模式_JavaEE重新审视设计模式:装饰器

javaee 设计模式去年的这个时候&#xff0c;我写了一系列有关JavaEE设计模式实现的博客文章。 大约一年后&#xff0c;我意识到我错过了我最喜欢的图案装饰器。 装饰器模式基本上是通过装饰其他对象来扩展对象功能的方法&#xff0c;其他对象可以包装目标对象并为其添加行为。…

echarts label加边框_echarts 添加自定义label标签

1.echarts 自定义标签注&#xff1a;当设置visualMap的后&#xff0c;给覆盖regions单独定义的值(如果data 中没有regions的地区 则无妨&#xff0c;我这个是从data中删除青岛&#xff0c;但是lable 无法正常显示了&#xff0c;如有哪位大神有好的方法&#xff0c;请赐教)initC…

【15】docker

docker 一种容器技术&#xff0c;相当于 java 一侧编译多个场所运行的技术 &#xff0c;简单理解为一个盒子&#xff0c;盒子里面包裹着一个操作系统及其配置 docker 语法 #查看容器 docker ps -a #查看镜像docker images # 创建 dockerdocker run image #启动docker并且…

解析URI与URL之间的区别与联系

URI就是一种资源定位机制&#xff0c;它是比较笼统地定位了资源&#xff0c;并不局限于客户端和服务器&#xff0c;而URL就定位了网上的一切资源&#xff0c;只要是网上的资源&#xff0c;都有唯一的URL 今天在看STRUTS配置的时候&#xff0c;发现一个问题&#xff0c;就是在看…

6.数据结构

时间&#xff1a;2018年12月9日20:08:43 --------------------------------------------------------------------------------------- 0.四种&#xff1a;列表&#xff0c;元组&#xff0c;字典&#xff0c;集合 1.列表 可变数据类型&#xff08;可以添加&#xff0c;移除&…

为什么要关心均值和哈希码

等于和哈希码是每个Java对象的基本元素。 它们的正确性和性能对于您的应用程序至关重要。 但是&#xff0c;我们经常看到甚至有经验的程序员也忽略了类开发的这一部分。 在本文中&#xff0c;我将介绍一些与这两种非常基本的方法有关的常见错误和问题。 合同 提到的方法至关重…

python把英语句子成分字母_句子成分的表达字母

1.一【1】1、一般现在时(do); 2、一般过去时(did); 3、一般将来时( will do)(be going to do); 4、一般过去将来时( would do); 5、现在进行时( be doing); 6、过去进行时(was/were doing); 7、将来进行时( will be doing); 8、过去将来进行时( would be doing)(was/were going…

AntDesign Form表单字段校验的三种方式

1.使用getFieldDecorator的rules规则 最简单的方法就是使用getFieldDecorator中的rules验证。rules中定义校验规则&#xff0c;message为校验不通过时的提示文字。 {getFieldDecorator(inputContent, {rules: [{required: true, message: 请输入内容!,}],})(<Input /> )}…

matlab的max与min函数

max作用于矩阵有比较并保留较大数字的功能。如下所示&#xff1a; 矩阵a中每个元素与2相比较取较大值&#xff0c;1比2小&#xff0c;所以替换为2. 矩阵a中每个元素与3相比取较小值&#xff0c;4比3小&#xff0c;所以替换为3. a 1 2 3 4 K>> max(a,2)…

JAVA Servlet API简介及接口与类的用法

本章介绍了Java Servlet API中的主要的接口与类的用法&#xff0c;并且介绍了它们的生命周期。表4-1 对接口与类的作用与生命周期作了归纳。这些接口与类的生命周期都由Servlet容器来控制&#xff0c;容器会在特定的时刻创建或销毁它们的实例。 表4-1 Servlet API中的主要的接口…