• 如何利用Excel设计一个唱票统计系统?


    具体操作如下:

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

    唱票数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进行快速的横向拖拽复制。

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

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

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

  • 相关阅读:
    ActiveMq C#客户端 消息队列的使用(存和取)
    .NET中RabbitMQ的使用
    如何写入和读取从 Microsoft 消息队列在 Visual C#
    完整的站内搜索Demo(Lucene.Net+盘古分词)
    最大熵,熵,MLE的解释,还行
    JavaScript是如何工作的: CSS 和 JS 动画底层原理及如何优化它们的性能
    Fundebug发布Vue插件,简化BUG监控接入代码
    Spring Boot统一异常处理实践
    预计2019年发布的Vue3.0到底有什么不一样的地方?
    开源前端脚本错误监控及跟踪解决项目BadJS试用
  • 原文地址:https://www.cnblogs.com/huanghanyu/p/12929091.html
Copyright © 2020-2023  润新知