具体操作如下:

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

唱票数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. 重磅!阿里P8费心整理Netty实战+指南+项目白皮书PDF,总计1.08G

    前言 Netty是一款用于快速开发高性能的网络应用程序的Java框架.它封装了网络编程的复杂性,使网络编程和Web技术的最新进展能够被比以往更广泛的开发人员接触到. Netty不只是一个接口和类的集合 ...

  2. Docker 入门:镜像

    主要内容: 什么是镜像 下载镜像 pull 设置下载加速源 查看镜像 上传镜像 push 什么是镜像(image) 镜像是一个文件系统,提供了容器运行时需要用到的文件和参数配置.相当于平时在使用某个软 ...

  3. 用Linux感觉低效吗?来看看这几个技巧!

      Linux已经成为目前最火的操作系统之一,尽管现在的Linux用户很多,但很多使用Linux的同学发现,他们在Linux下的工作效率并不高,那么这是为什么呢?其实使用Linux也可以很舒适,通过一 ...

  4. 前端基础进阶(十一):详细图解jQuery对象,以及如何扩展jQuery插件

    早几年学习前端,大家都非常热衷于研究jQuery源码.我还记得当初从jQuery源码中学到一星半点应用技巧的时候常会有一种发自内心的惊叹,“原来JavaScript居然可以这样用!” 虽然随着前端的发 ...

  5. [Chrome插件开发]001.入门

    Chrome插件开发入门 Chrome扩展文件 Browser Actions(扩展图标) Page Actions(地址栏图标) popup弹出窗口 Background Pages后台页面 实战讲 ...

  6. [Python基础]007.字符串

    字符串 内建操作 字符串长度 大小写变换 去空格或其他 连接字符串 查找替换 分割 判断 内建操作 字符串长度 len 代码 s = 'abcd' print len(s) 大小写变换 lower 小 ...

  7. 【原创】Linux中断子系统(一)-中断控制器及驱动分析

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  8. 乌云jsonp案例

    新浪微博之点击我的链接就登录你的微博(JSONP劫持) 生活处处有惊喜啊!逛逛wooyun都能捡到bug. 测试的时候没关burp,逛乌云的时候抓到一条url: http://login.sina.c ...

  9. day 6 (笔记由图转)

    .

  10. 移动端fixed兼容问题

    最近做移动端页面,有个需求类似下图 底部导航用fixed定位时在部分iOS版本中会有问题: 1.上滑是底部会跟着滑动,手指松开时才会又回到底部 2.软键盘唤起的情况下,也会出现许多莫名其妙的问题 网上 ...