动态改变eachers图表高_让你的Excel图表动起来

有读者提了这样一个问题,想要制作如下的动态图表,要怎么实现?

5a54e92a8b4ffe2ce8808656d67da87f.gif
动态图表展示.gif

可以看到,这个动态效果里有4种选择器,左上方的组合框呈现出选择不同的方案展示相应柱形图的效果;

c0499a0a2f3c618e317cf17a0d60bf65.png
fd0bdec8e59fcaf5aa521b2a2d71af04.png
df285c8efcb89f59a87f1d77a7940e40.png

中间的复选框勾上显示差额的图表,不勾就不显示;

a746fc172c6bb6439a4b9d33fe06507c.png
b0ec6372461d842a4e39a64798b92fe1.png

右上角的滚动条则实现每页显示多少人,就有多少个柱子的功能;

485fb05cde53add82beebd22ee514cf4.png
a4ac5d65d1cdb1e91182e38dfac5b8b7.png

下方的滚动条实现数据的滚动,因为这个数据是有100多条,一个柱形图显然无法全部展示,所以要用滚动条去认为地滚动展示。

bea4e1a82fd31df80ff4200dc4602006.png
efffbeb765e645cc2a92be0266c05431.png

下面我们就来实战一下要怎么实现。上面演示的是从网上找的模板,我们要做的真实数据是这样的:
7e804d4f8c741d94f0847e8b07d1fa37.png

选择器的制作

记得动态图表是怎么做的吗?首先要有数据源,然后制作选择器,接着取数,最后画图。如果你没有动态图表基础,可以参考以下文章:
这样用Excel动态交互图表,还要什么前端?

动态图表交互揭秘:制作选择器的奥秘

动态图表揭秘:“动”的关键——取数

下面我们就来制作选择器。

滚动条

总共122条数据,每个人们对应方案1和方案2的值,差异是方案1减去方案2,如果想要把122条数据放在一张图里,就需要用到滚动条了,所以我们先来做滚动条。

点击【开发工具】-【插入】,找到【滚动条】的选项,在表格空白处画一个滚动条。

da55ffec7f62010041d5eae9aa3f644c.png

画好滚动条以后,右键点击【设置控件格式】,在弹出的对话框中,修改以下选项,最小值为1,最大值为122,步长为1,单元格链接是图中标黄的G2单元格。
3909fd01443ee597d50b39b523c3f0c3.png

这样,当我们移动滚动条时,G2单元格中的数值就会跟着变化。
21729e92ec602580d20d838016223054.png

数值调节钮

原模板右上角的滚动条我们用数值调剂钮来代替,同样点击【开发工具】中的【插入】,选择【数值调节钮】,在空白处画一个调节钮。

a8475e6c118b80c3c5a6d99a1594c5f3.png

右键【设置控件格式】,在弹出的对话框中,修改最小值为5,最大值为15,意思是我们的一个图表中最少有5个柱子, 最多有15个柱子,也可以根据自己的情况自由设置,链接到G3单元格中。
138f537477b01a2dca8e6d8bae60686e.png

这样,我们点一下数值调节钮,G3单元格中的数字也会跟着变。
2e542816228875dc810d3cda0d9b8b65.png

组合框

同样在【开发工具】中插入【组合框】。

15c6cb139118f43951c6e03f4a079070.png

右键【设置控件格式】,数据源区域选择提前写好的I2:I4区域,也就是方案一、方案二和方案对比,结果链接到G4单元格中。
6a4d5b137e0fab792516fc93111612c5.png

复选框

同样我们做一个复选框的按钮,把它链接到G5单元格中。

88418bd7d2fe7eae9a8193ac61de3425.png

做好这4个选择器以后,我们要开始做动态图表了,大家要明确一个思路,图表之所以会动,是因为数据在动,数据动态变化,图表自然而然就跟着变了。所以我们的关键在于让数据动起来。

取数:定义动态名称

之前我们一贯的思路是做了选择器之后,做一个取数的区域,让这个区域里的数随着选择器里数值的改变而变化,但是这里我们不能固定一个动态区域了,因为这个区域本身就不是固定的了,它会随着数值调节钮的改变而增加或减少区域,会随着滚动条的改变选择不同区域的数值,因此,我们需要用offset定义动态名称来解决这个问题。

X轴

点击【公式】里的【定义名称】,起个名字,命名为x_data,意思是我们这里要选择的是图表中的X轴。在引用位置处输入公式

=OFFSET(动态图表!$A$1,动态图表!$G$2,0,动态图表!$G$3,1)

这个公式的意思是,以A1单元格为参考下,向下偏移G2单元格数值个行,也就是滚动条变化的值,向右偏移0列,选择G3单元格数值个行,也就是数值调节钮变化的值,选择1列。

这里滚动条的值是1,数值调节钮的值是5,也就是以A1单元格为参考系,向下偏移1行,向右偏移0列,这时就选中了A2单元格,再选择5行,1列,这样就选中了A2:A6区域,也就是图里虚线选中的部分。

Offset函数是实现通过给定参考系,按照偏移量返回特定引用区域的功能,也不复杂,只要想明白它是怎么用的就好。

Offset(以什么为参考系,向下偏移几行,向右偏移几列,选择几行,选择几列)

acddaf741d69f38d664aca713811dcd6.png

我们试着改变一下滚动条和数值调剂钮的值,发现x_data区域也跟着变化了,要想实现的就是这效果。

2ad87440e1bcdfca31cab47c5b3c874a.png

方案1

做好了X轴的动态变化,我们再来做方案1,也就是Y轴的动态变化,同样用到offset动态名称。命名为y1_data,输入公式

=OFFSET(动态图表!$A$1,动态图表!$G$2,1,动态图表!$G$3,1)

可以看到虚线框选到了方案1列所在的区域,这个公式和X轴公式的唯一区别在于向右偏移几列这个参数,这里是1,X轴公式是0.

dff8f7b9bca318f579f1e893ffad92c5.png

方案2

同样给出方案2的动态变化,命名为y2_data,输入公式

=OFFSET(动态图表!$A$1,动态图表!$G$2,2,动态图表!$G$3,1)

和方案1公式不同的还是在于向右偏移几列这个参数,这里是2,意思是向右偏移2列。

5dfcd8eb9cbcc427848019c8c819f25b.png

作图

随便选择ABC3列数据中的区域做一个柱形图,得到如图所示的图表,选中柱子右键【选择数据】,在弹出的对话框中点击右边的水平轴标签中的【编辑】按钮。

8224e86de2b40c7114d08a2a482f776b.png

把轴标签里的值替换成我们刚刚写好的X轴也就是x_data,注意感叹号!前面的不要动,这是表名。
2308a4bf72833ec5ff7334607d0734b1.png

同样对方案1和方案2进行编辑
8db070e2eeb2cef663a0ec9223cd73eb.png

将方案1里的系列值替换成y1_data,方案2替换成y2_data
8294755302e6e0b07631a728cb047c1e.png

这样我们在调整滚动条和数值调节钮的时候,图表就会变化了,雏形差不多出来了。
fb186276596a6a3bf7caf03ef0651b82.png

方案1&2再细化

细心的你可能发现了,我们最初想要实现的是用组合框控制方案1、2的图形变换,现在这样是两种方案同时呈现的图,和组合框好像没什么关系。

对了,因此需要对方案1和方案2的offset函数再优化,在G6单元格写一个判断函数来告诉offset向右偏移几列这个参数,如果G4单元格,也就是组合框的值为1,也就是选择了方案1的话,if的值为1;否则的话再进行判断,如果组合框的值为3,也就是选择了方案对比的话,if的值也为1,否则为0。这个意思是如果组合框选了方案1和方案3,都向右偏移1列,如果选择了方案2,就偏移0列。(大家细细琢磨一下,得自己理解)

d892d8990160e99f09e3bf7ca17f2f4b.png

同样给方案2一个if判断,如果组合框选了方案2和方案对比,就向右偏移2列,否则偏移0列。

ee5b9629965e2f87d8aa5273e7292ab1.png

我们再来重新写一下方案1的offset偏移公式,命名为y11_data,输入公式

=OFFSET(动态图表!$A$1,动态图表!$G$2,动态图表!$G$6,动态图表!$G$3,1)”

和y1_data公式唯一的区别在于向右偏移几列这个参数,这里要改成G6单元格,也就是我们刚if函数去判断的那个单元格。

7f644d3b9ca03787c6f72db0a8288dda.png

同样把方案2的公式也改一下,命名为y22_data,输入公式

=OFFSET(动态图表!$A$1,动态图表!$G$2,动态图表!$G$7,动态图表!$G$3,1)

这里也是向右偏移几列写成了G7单元格。

462010cba55be510bc7c5b97251b73d0.png

组合框动态图表

我们选中图表中的蓝色柱子,将公式栏中的y1_data,改为刚刚写好的y11_data

e045d4fae87ab3a3f72a614960b7097e.png

选择橙色的柱子,把y2_data改成刚刚写好的y22_data。

beeb2b1ed1de9f5769f517ec08db4dcd.png

这时我们改变组合框的选项,就实现我们最初想要的功能了。

e6bd59405d306cff558fad2dbebff3c2.gif
组合框.gif

复选框动态图表

快完成了,别忘了还有一个复选框控件,要实现的功能是点击“显示差额”复选框,就输出方案1和方案2的差额对比的图表,数据源就是D列差额。思路还是用offset动态名称加上条件判断的方法。

先在G8单元格给定向右偏移几列这个参数的条件判断,如果G5单元格为真,if判断的值就为3,否则为0,意思是如果选择了复选框,就向右偏移3列,否则就不偏移。

32dd373fd897f086c863fedae3e24246.png

再来给定动态名称,命名为yc_data,输入公式“=OFFSET(动态图表!2,动态图表!2,动态图表!8,动态图表!3,1)”

afb97ee6eb549df64f5d10b0505de6a1.png

同样地,随便选择区域数据插入图表,点击柱子,将x轴部分改为x_data,Y轴部分改为yc_data。

be244324442e02f31090a4d79e69c5d4.png

这样,当我们点击显示差额,这个图就跟着显示或不显示了。

图表美化

把组合框、复选框和数值调节钮拖到第二行,并把这一片区域填充为橙色。

9e7b41d747efedf35f56dfe5d1fb06ad.png

把 差额 做的这个表拉过来和大表对齐。

dc2618b93f095df53f4686019a0127a7.png

把后面那一片背景填充为金色。

1e5c141b12b259d8d5c7b09e1453b69f.png

把两个图表设置成无颜色填充无框线,再给这片区域加上粗线框,最后得到如下结果:

bc26db54d6e70f5d8775045065be6bfc.png
bddbdd842e291760776d6bd0c021e26a.gif
成果.gif

猜你喜欢:
什么是好的数据指标:精益数据分析

泰坦尼克号数据分析

深入浅出数据分析

数据分析都有哪些岗位?

为什么要学统计学:赤裸裸的统计学

成为数据分析师的第三年,我写了10W字

@ 作者:可乐
@ 公众号/知乎专栏/头条/简书:可乐的数据分析之路
@加个人微信:data_cola,备注:进群,拉你入 可乐的数据分析群 和各行各业的小伙伴交流探讨数据分析相关内容

eaa4a726fea0ca65abf193f02d05aa20.png
微信公众号
c561bb14b413da37b7578d4503665ba3.png
个人微信号

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

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

相关文章

pythonxlwt行居中_python3-xlwt-Excel设置(字体大小、颜色、对齐方式、换行、合并单元格、边框、背景、下划线、斜体、加粗)...

# coding:utf-8import patterns as patternsimport xlwtimport timei 0book xlwt.Workbook(encodingutf-8)sheet book.add_sheet(sheet1, cell_overwrite_okTrue)# 如果出现报错:Exception: Attempt to overwrite cell: sheetnamesheet1 rowx0 colx0# 需要加上&a…

2018-2020年Gartner战略科技发展趋势一览!

来源:边缘计算社区近日,Gartner公布了2020年十大战略科技趋势的预测,值此之际,边缘计算社区总结回顾并简要分析了2018-2020三年的战略科技发展趋势变化。Gartner将战略科技发展趋势定义为具有巨大颠覆性潜力、脱离初期阶段且影响范…

【HDU 2255】奔小康赚大钱 (最佳二分匹配KM算法)

奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1836 Accepted Submission(s): 798 Problem Description传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配…

java的比较运算符是_Java 基础(比较运算符,逻辑运算符,三元运算符)

运算符&#xff1a;比较运算符运算符运算范例结果相等于43false!不等于4!3true<小于4<3false>大于4>3true<小于等于4<3false>大于等于4>3trueinstanceof检查是否是类的对象"Hello" instanceof Stringtrue比较运算符的结果都是 boolean 类型&…

python爬去朋友圈_利用Python爬取朋友圈数据,爬到你开始怀疑人生

人生最难的事是自我认知&#xff0c;用Python爬取朋友圈数据&#xff0c;让我们重新审视自己&#xff0c;审视我们周围的圈子。文&#xff1a;朱元禄(数据分析&#xff0d;jacky)哲学的两大问题&#xff1a;1、我是谁&#xff1f;2、我们从哪里来&#xff1f;本文 jacky试图用P…

正面交锋!另类“竞赛”探索大脑的意识起源

图片来源&#xff1a;ZEPHYR/SCIENCE PHOTO LIBRARY/GETTY IMAGES来源&#xff1a;中国生物技术网在脑科学研究领域&#xff0c;科学家们可以观察到神经元的放电及其之间的通信&#xff0c;从而描绘出在产生感觉、进行决策和说话过程中大脑各区域是如何被“点亮”的。但他们无法…

(第七周)内容汇总

项目名&#xff1a;食物链教学工具 组名&#xff1a;奋斗吧兄弟 组长&#xff1a;黄兴 组员&#xff1a;谢孝淼、李俞寰、杜桥 1、团队贡献分 黄兴 5.1 谢孝淼 4.8 李俞寰 5.2 杜桥 4.9 2、alpha视频发布 平台&#xff1a;优酷 链接&#xff1a;http://v.youku.com/v_show/i…

tomcat java内存_[Tomcat]Java内存溢出详解Tomcat内存设置

Java内存溢出详解一、常见的Java内存溢出有以下三种&#xff1a;1.java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值&#xff0c;其初始空间(即-Xms)是物理内存的1/64&#xff0c;最大空间(-Xmx)不可超过物理内存。可以…

python与办公自动化专业就业方向_Python最好的几大就业方向与岗位技能要求【行业风向】...

关于Python的就业方向&#xff0c;如果你还在学习还没开始找工作&#xff0c;这篇文章绝对会对你有所帮助。目前信息化产业发展势头很好&#xff0c;互联网就成为了很多普通人想要涉及的行业&#xff0c;因为相比于传统行业&#xff0c;互联网行业涨薪幅度大&#xff0c;机会也…

深入探索边缘计算:物联网与5G时代的技术趋势

来源&#xff1a;世界物联网博览会边缘计算的诞生随着物联网规模的快速增长&#xff0c;集中式的数据存储、处理模式将面临难解的瓶颈和压力&#xff0c;此时在靠近数据产生的网络边缘提供数据处理的能力和服务&#xff0c;将是推动ICT产业发展的下一个重要驱动力。边缘计算&am…

BAPI_GOODSMVT_CREATE 移动类型311 CODE = '04' 代码

DATA: MAT_DOC LIKE BAPI2017_GM_HEAD_RET-MAT_DOC. "物料凭证编号 DATA: GMHEAD LIKE BAPI2017_GM_HEAD_01. DATA: BEGIN OF GMCODE. INCLUDE STRUCTURE BAPI2017_GM_CODE. DATA: END OF GMCODE. GMCODE-GM_CODE 04. ***********gmcode-gm_…

python交叉验证函数_python – 在sklearn中使用交叉验证和AUC-ROC作为逻辑回归模型...

我正在使用sklearn包来构建逻辑回归模型,然后对其进行评估.具体来说,我想使用交叉验证,但无法通过cross_val_score函数找出正确的方法.根据我看到的documentation和examples,我需要传递模型,特征,结果和评分方法的功能.然而,AUC不需要预测,它需要概率,因此它可以尝试不同的阈值…

无法消除恐惧?Nature发现肠道菌与大脑间更多的神秘联系...

来源&#xff1a;中国生物技术网肠道&#xff0c;也被称为“第二大脑”。研究人员对它研究得越多&#xff0c;就发现肠道微生物与大脑之间的联系越多。肠道细菌似乎会影响从抑郁症到自闭症的所有疾病。近日发表在《Nature》上一项有关小鼠如何克服恐惧的研究开始揭示出更多关于…

java poi excel 导入数据库_java POI 处理excel表格数据并导入数据库示例

java操作Excel最常用的开源组件有poi与jxl。jxl是韩国人开发的&#xff0c;发行较早&#xff0c;但是更新的很慢&#xff0c;目前似乎还不支持excel2007。 poi是apache下的一个子项目&#xff0c;poi应该是处理ms的office系列文档最好的组件了。poi3.7版本已经开始支持excel200…

Fly.Box天禾云盘2016双11超级钜惠,超低折扣!!!

Fly.Box企业网盘2016双十一超级钜惠&#xff0c;超低折扣&#xff0c;超多优惠 凡在2016年11月1日至2016年11月11日期间下单的客户&#xff0c;均可享受5折优惠&#xff0c;终身免费升级&#xff0c;免费服务。推荐即可获2折返现&#xff0c;老用户推荐更可享受8折的折上折优惠…

python组合数据类型实验_实验七 组合数据类型

安徽工程大学Python程序设计实验报告班级物流192 姓名 徐敏 学号 3190505232 成绩 _____日期 2020.5.28 指导老师 修宇实验七 组合数据类型【实验目的】熟悉通过序列索引迭代执行循环&#xff1b;掌握元组、列表与字典的系列操作函数及相关方法【实验条件】PC机或者远程编程…

wcf获取MySQL中午乱码,如何启用WCF日志记录,以便它写入数据库?

Id like to be able to log message information in a database, and Im trying to decide how best to do that. Is it possible to configure the WCF logging mechanisms to write to a database instead of a file? Thanks.解决方案You need to have two things:a proper …

mysql的limit、order by和group by的用法

程序执行会重复 用mysql很长时间&#xff0c;limit是分页的一个好工具&#xff0c; select * from table_a where num 4 limit 1&#xff0c;10, select * from table_a where num 4 limit 10&#xff0c;10, 今天突然发现有些数据怎么也不会出来 也就是说第一页的数据会重复…

挑战61年未被质疑的经典心理学理论—— 大脑识别图像并非“趣味导向”

来源&#xff1a;科技日报科技日报讯 &#xff08;实习生张临谦 记者房琳琳&#xff09;据物理学家组织网最新报道&#xff0c;加拿大约克大学的视觉研究者近日对多种视觉图像处理算法进行了测试&#xff0c;并经特定实验发现&#xff0c;人脑并不会优先处理图像中的有趣区域&a…

销售管理系统 java_用Java从零写一个B2C商城,看完不要再说自己没有实战经验了!...

一、B2C商城实战需要哪些技术点要想立足于互联网公司&#xff0c;且能在互联网浪潮中不被淹没&#xff0c;对于项目的开发实战演练是不必可少的技能&#xff0c;也是对自身能力的一个衡量&#xff0c;有多少的量对等于获得多少的回报。看似简单的一个项目需求图谱&#xff0c;其…