具体操作如下:

首先需要一个如下的数据结构。

唱票数G列区域,不能手动输入候选人票数,这样很不方便,所以我们需要一个窗体控件,用点击鼠标的方法来实现唱票。在“开发工具-插入-数值调节钮”下图3处,然后拖拽得到一个如下图的控件。(下图4处)

接着利用控件来控制G3单元格,即第一个候选人。

选中控件,点击鼠标邮件,在“设置控件格式-链接单元格-G3单元格”,这是点击控件的上下箭头,可以来控制单元格的票数。如下动图操作。

依此类题,选中控件,Ctrl+C/Ctrl+V复制出剩下的五个控件,然后将其单元格链接分别对应后几个候选人对应的单元格。如下图动图所示。

接着插入一个图表,将其置于底层,按动控件的箭头,图表的箭头就会随之移动,那么我们这个唱票系统的雏形就有了。看下图动图:

但小伙伴们对唱票系统有要求,要求前三名的图表柱子能自动变成红色。剩余的名次的柱子保持原有颜色。而且还要对每个候选人的唱票有最终的汇总数字表达。所以我们要在插入图表之间,对数据结构进行改进。这也是本例的难点。

在数据结构后面,新增前三名列(H列)和剩余名次列(G列)。然后将下面的公式复制到数据结构中,注意按ctrl+shift+enter来执行这个函数公式。然后在进行拖拽填充,这是系统会知道抓住候选人的前三名数字,不是前三名的候选人会用数字0来代替。

=IFERROR(VLOOKUP(G3,LARGE($G$3:$G$8,ROW($G$1:$G$3)),1,0),0)

具体操作如下:

=IFERROR(VLOOKUP(G3,LARGE($G$3:$G$8,ROW($G$1:$G$3)),1,0),0)

该公式是一个数组公式,注意ROW($G$1:$G$3)控制选择需要变红的名词的个数,本例为前三名,如果要前六名变颜色,就要改为ROW($G$1:$G$6).

Large函数来动态获取前三名的区域范围。

Vlookup来匹配候选人的数值是否能匹配前三名的数值区域,从而获得该数值。

IFERROR用让剩余没匹配的剩余(不是前三名的)数值为0。

G列这是候选人数据所在的列。

搞清楚这个公式,就可以对该数据模板进行随意按需的调整。

接着我们将不是前三名的数据显示在I列,所以利用如下公式即可搞定。

=IF(G3-H3>0,G3,0)

有了这两个辅助列,然后在插入堆积柱形图,然后对前三列的数据统一设置为红色,即可实现动态的前三名的柱形图显示。(看动图操作)

最难的地方搞定后,接下来开始对图表进行美化,调整图表的大小尺寸,固定坐标轴的最大高度,也就是唱票可能出现的最高值。

这里有些技巧:

拖拽图表大小的时候,按住alt键可以与单元格边缘进行吸附。

调整最后一个控件的位置,然后利用对齐按钮进行快速的对齐分距调整。

选中坐标轴,按ctrl+1可以快速打开坐标轴最大值设置窗口。

设置坐标轴最大值。

接着设置候选人对应的唱票数统计,在图表工具中插入对应的文本框。然后在编辑栏中输入=号,去引用G列对应的唱票数。再按住ctrl+shift进行快速的横向拖拽复制。

最后修改其他的文本框对应的单元格引用。然后美化图表,增加主次网格线即制作设计完毕。

最终效果如下:前三名会自动为红色。如果前三名票数一样,也会是红色。

总结:利用控件+函数+图表,就可以制作出一个非常专业的动态图表展现系统。本例的唱票系统就是一个典型,希望大家能够掌握

如何利用Excel设计一个唱票统计系统?的更多相关文章

  1. 如何利用Visio设计一个系统的结构图

    首先建立一个空的vison列表 添加图形和连接线 托选一个矩形块到操作台上,并进行底色填充 选择有向线段1拖到矩形模块上,此时有向线段1会自动吸附到矩形的中点处. 此时按下图操作即可取消,自动吸附 托 ...

  2. 利用Echarts设计一个图表平台(一)

    Echarts是一款百度的开源图表库,里面提供了非常多的图表样式,我们今天要讲的内容是利用这一款开源js图表,制作一个能够动态定制的图表平台. 1)Echarts API介绍 首先我们先来看一下Ech ...

  3. UE4笔记:利用Widget设计一个切换材质功能

    UE4引擎中的Widget蓝图是一个重要的工具,可用于场景中的页面叠加,镜头绑定,场景切换等多处地方,在这里笔者介绍一种利用控件蓝图和场景中物体进行信息交互的方法,直观的体现就是进行物体的材质切换. ...

  4. 动手实践记录(利用django创建一个博客系统)

    1.添加一个分类的标签,和主表的关系是 外键 class Category(models.Model): """ 分类 """ name = ...

  5. 如何利用GitHub设计一个炫酷的个人网站(含代码)

    1.在开始制作之前我们先预览一下我的网站吧! 1.方式一: 由于是手机版的所以用手机访问下面的链接体验比较好一点: https://tom-shushu.github.io/MyWeb.github. ...

  6. C语言中利用clock设计一个简单的定时器

    time.h是C/C++中的日期和时间头文件,用于需要时间方面的函数,定义了四个变量类型.两个宏和各种操作日期和时间的函数. 其中计时函数是clock(),而与其相关的数据类型是clock_t.clo ...

  7. 如何设计一个RPC系统

    版权声明:本文由韩伟原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/162 来源:腾云阁 https://www.qclou ...

  8. 如何设计一个 RPC 系统

    本文由云+社区发表 RPC是一种方便的网络通信编程模型,由于和编程语言的高度结合,大大减少了处理网络数据的复杂度,让代码可读性也有可观的提高.但是RPC本身的构成却比较复杂,由于受到编程语言.网络模型 ...

  9. 利用JS跨域做一个简单的页面访问统计系统

    其实在大部分互联网web产品中,我们通常会用百度统计或者谷歌统计分析系统,通过在程序中引入特定的JS脚本,然后便可以在这些统计系统中看到自己网站页面具体的访问情况.但是有些时候,由于一些特殊情况,我们 ...

随机推荐

  1. 在IDEA中使用Spring写一个HelloWorld

    准备工作 1.使用IDEA2018专业版, 我试了IDEA2019教育版和IDEA2020社区版,都无法顺利创建一个Spring项目,实在是恼火,一气之下,统统卸载掉. 重装了一个IDEA2018专业 ...

  2. poj3764字典树路径最大异或和

    The xor-longest Path Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6853   Accepted: 1 ...

  3. 六、表达式:前缀&&后缀

    count为运算后的值.

  4. 去重函数unique,sort,erase的应用

    std::unique 一.总述 unique函数属于STL中比较常用函数,它的功能是元素去重.即"删除"序列中所有相邻的重复元素(只保留一个).此处的删除,并不 是真的删除,而是 ...

  5. Golang源码学习:调度逻辑(一)初始化

    本文所使用的Golang为1.14,dlv为1.4.0. 源代码 package main import "fmt" func main() { fmt.Println(" ...

  6. SpringMVC笔记总结

    文章所有代码见:gitee 1.回顾MVC 1.1.什么是MVC MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范. 是将业务逻辑.数据.显示分离 ...

  7. MySQL事务锁等待超时 Lock wait timeout exceeded; try restarting transaction

    工作中处理定时任务分发消息时出现的问题,在查找并解决问题的时候,将相关的问题博客收集整理,在此记录下,以便之后再遇到相同的问题,方便查阅. 问题场景 问题出现的场景: 在消息队列处理消息时,同一事务内 ...

  8. Java——java.lang.NullPointerException

    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); StandardJavaFileManager fileManager = ...

  9. ArrayList简介

    ArrayList简介 ArrayList以数组为底层数据结构的集合,是一个动态的数组队列,就是说该类的容量可以增长,与一般的数组不同. public class ArrayList<E> ...

  10. 快服务常见TOP3审核雷区,再不过审就要崩溃啦!

    仰天大笑出门去,审核提交很神气. 垂死病中惊坐起,突然驳回伤不起. 江州司马青衫湿,重新修改苦自知. 梦里花落知多少,回复马上就改好. 审批被驳回可能是最常见的令开发者头大的问题了,明明看起来&quo ...