这一节内容介绍动态交互图表制作的核心内容,就是取数。没看过前两节的朋友可移步《这样用Excel动态交互图表,还要什么前端?》、《动态图表交互揭秘:制作选择器的奥秘》。首先要理解,图表能动起来,是作图的这部分数据在动态变化,因此我们说动态图表,其实是动态数据,数据动起来了,图表自然而然就跟着变化了。

原理

不要破坏原数据,在原数据的基础上建立一个取数区域,取数区域是根据取数函数动态取数的。当然也可以不做辅助的取数区域直接让图表动起来的方法,见文末。

取数函数

1

vlookup 

最常用的函数,这个函数已经写了无数遍,每天工作也用了无数遍,但还是要来啰嗦,因为它实在是太重要了,先来看看函数结构:

vlookup(Lookupvalue,Table array,Col index num,Range lookup)

函数参数解释说明如下:

Lookup value:要查找的单元格。

Table array:从哪个区域/表找。

Col index num:选择区域/表的第几列,默认序号是从1开始。

Range lookup:0是精确查找,1是模糊查找。

下面是使用vlookup函数取数的完整步骤:

Step1:做选择器和固定表头。先做一个组合框,组合框选择的是城市,单元格链接到D50单元格,也就是图中标黄的单元格,表头是日期,要取的是日期固定下的不同城市的值。

Step2:取数。先取城市,在D51单元格中输入公式“=VLOOKUP($D$50,$A$1:$M$32,2,0)”。vlookup的第一个参数要查找的单元格,肯定是选择器的结果即D50单元格,第二个参数值在哪找,当然是在原数据中找,即$A$1:$M$32区域,第三个找第几列,城市是第二列,最后一个参数是精确查找。

再来回顾一下上节内容制作选择器,选择器制作完选择的结果通常是数字(1/2/3等)或逻辑值(TRUE/False),我们知道使用vlookup函数连接两张表的时候,两张表必然有一个公共字段,所以要在原数据中添加一列序号值,作为公共字段。添加了序号列的原数据如下:

Step3:至此已经完成一个数据的动态变化了,选择器选择不同的城市在D51单元格中就显示相应的城市,因为vlookup函数往右拖Excel没法智能识别出你的用意,所以如果你不嫌麻烦的话,就在每一个固定日期下输入相同的函数,只是列数选择不一样。

一个一个改参数实在有点麻烦,所以我们在固定表头日期的上方做一行辅助行,数字表示该列数据在原数据中的位置。这样vlookup函数就可以向右拖动了。

2

index

index(Array,Row num,Column num)

Index函数有3个参数:

Array:要查找的区域。

Row num:寻找第几行。

Column num:寻找第几列。

Step1:还是做表头和选择器,就不多说了。

Step2:用index函数取数,在D52单元格中输入公式“=INDEX(B2:B32,$D$50)”,从B2:B32区域中找第$D$50行的值,注意B2:B32区域只有一列,所以就不填第几列这个参数了,$D$50依旧是组合框选择的值,这个函数可以右拖,是不是比vlookup函数好用许多呢。

3

index+match

index还可以和match函数结合来取数。Index函数是取一个精确坐标下对应的值,而Match函数是用来确定一个值的坐标,返回指定范围内值所在的序号,结构如下:

Match(Lookup value,Lookup array,Match type)

Lookup value:是要查找的值

Lookup array:是要查找的值所在的区域

Match type :同vlookup一样精确匹配0

Step1:制作选择器,这里用数据有效性来制作。鼠标放在B54单元格中,选择【数据】——【数据验证】,验证条件选择序列,来源是原数据的城市一列,点击确定就得到了B54单元格的数据有效性。

Step2:先来看一下使用match函数的结果,在D53单元格中输入公式“=MATCH(B54,B2:B32,0)”,表示查找B54单元格这个值在B2:B32区域中是第几行,结果返回2,表示是第二行。

Step3:用indext+match函数结合取数。在D54单元格中输入公式“=INDEX(B2:B32,MATCH($B$54,$B$2:$B$32,0))”,表示在B2:B32这一列中取第几行的值,第几行由match函数算出,这个公式做好相对引用绝对引用后可以右拉。这两个函数结合取数的方式用在对一个值直接取数,而不是选择值对应的数字取数。

4

offset

以指定的引用为参照系,返回新的引用,这个函数有点复杂了,但学会了还是很有用的,该函数结构如下:

Offset(reference,rows,cols,height,width),有5个参数,分别表示:

Reference:指定参照系起始位置,表示从哪个位置开始引用

Rows:相对于起始位置,向下偏移几行

Cols:相对于起始位置,向右偏移几列

Height:新区域选中几行,

Width:新区域选中几列.

同其他几个取数函数一样,先制作选择器,如下图所示,组合框选择的结果在D50单元格中显示,在D55单元格中输入公式“=OFFSET(B1,$D$50,0)”,这个公式的意思是,从B1单元格开始,向下偏移$D$50单元格中显示的行数,向右偏移0行,得到的值即为取出的值。B1单元格是城市那一列字段的最开头的单元格,$D$50是选择器显示的结果,后两个参数不写也是可以的。

5

offset动态定义名称

接下来放个大招,无需制作取数区域,制作完选择器直接画出动态图表,就要用到offset动态定义名称这个功能来实现了。

在【公式】——【定义名称】中,名称命名为t_data,就是要画图的数,在引用位置处填写公式“=OFFSET(Sheet1!$C$2,Sheet1!$A$5,1,1,11)”,表示从C2单元格开始,向下偏移A5单元格所显示的行数(A5是选择器的单元格链接,这里组合框选择了天津,显示2,就是向下偏移两行),向右偏移1列,选择1行,选择11列(因为整个数据源有11列),这时就选择上了天津市对应的数据。

在做一个名称为b_data的offset偏移函数,引用位置处的公式为“=OFFSET(Sheet1!$C$2,Sheet1!$A$5,0)”,就是将城市名选择上。

对前两行数据插入一个柱形图。

在柱子上右键【选择数据】,在弹出的【选择数据源】对话框中,对【图例项】进行编辑

这一步很重要,将系列名称改为刚刚编辑的动态名称,b_data,系列值改为动态名称,t_data,点击确定。

组合框选择不同的值,图表就跟着动态变化,如下动图所示,还没有另做辅助区域,是个大招,不过也比较烧脑,需要在脑海中构想出offset函数偏移的过程。

Excel动态图表交互系列就到这里了,see you next week~


提供入门级数据分析的学习路线规划,分享从Excel到统计学的干货。数据分析是一项技能,希望人人都能分析数据。

相关内容:

SQL学习:MySQL入门 | 库/表/记录的增查删改 | 对行和列的操作 | 计算字段 | 分组和子查询 | 表连接

Excel分析方法:RFM分析 | 综合指标分析 | 平均和交叉 | 分组 | 对比 | 时间序列分析 | 回归分析 | 描述性统计分析 | 相关性分析

Excel图表:数据地图 | 数据透视表 | 动图图表交互 | 5个基本图 | 13个进阶图 | 直方图 | 控制图 | 排列图

Excel函数:日期文本函数 | 查找引用函数 | if函数 | 统计函数

用Excel进行数据分析:数据获取 | 数据处理

方法论:超级菜鸟怎么学习数据分析 |如何系统地学习Excel | 数据分析学习 | Excel相见恨晚的技巧

统计相关:几个统计概念 | 统计学的谬误

码字不易,喜欢就点个右下角 在看 呗

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

  1. Markdown+取数函数 让你的数据活起来

    Redash中文版支持完整的Markdown技术,之前已经介绍过markdown可以添加视频接入监控的流媒体服务器等高级功能,大大拓展了传统大大拓展了传统dashboard的表现力.接下来我们介绍Re ...

  2. 如何利用Python制作可以动的动态图表。

    来源:机器之心 原文链接:https://towardsdatascience.com/learn-how-to-create-animated-graphs-in-python-fce780421a ...

  3. python绘制pr曲线图_如何利用Python制作可以动的动态图表。

    来源:机器之心 原文链接:https://towardsdatascience.com/learn-how-to-create-animated-graphs-in-python-fce780421a ...

  4. 让数据“动”起来:python动态图表制作

    选自TowardsDataScience 作者:Costas Andreou 机器之心编译 参与:Jamin.张倩 在读技术博客的过程中,我们会发现那些能够把知识.成果讲透的博主很多都会做动态图表.他 ...

  5. 对于数据给定范围sql取数_SQL Server中的报表–根据给定日期范围内提取的数据创建图表

    对于数据给定范围sql取数 介绍 ( Introduction ) I recently heard from a lady from overseas who wanted to find a qu ...

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

    这一节内容介绍不同的选择器,具体怎么实现选择器和图表之间的连接,下节内容再放送.或可回顾前一篇系列文章,查看整体动态效果<这样用Excel动态交互图表,还要什么前端>. 选择器可以由窗体控 ...

  7. Excel绘制动态图表 之 极品offset、多种控件动态动图

    1.案例1:辅助区域动态图 动态按钮"投资金额"的制作: "数据"菜单下"数据工作"组中的"数据验证",选择" ...

  8. 取数游戏(博弈+动规)

    题目链接:https://nanti.jisuanke.com/t/48 题目描述 有如下一个双人游戏:N个正整数的序列放在一个游戏平台上,两人轮流从序列的两端取数,每次有数字被一个玩家取走后,这个数 ...

  9. 做动态图表,没有数据?用Python就能获取!

    关注上方"数据不吹牛",选择星标, 关键时间,第一时间送达! 转自:法纳瑞斯 既然有了Python这个制作动态条形图工具,缺的那便是数据了. 先看一下B站2019年「数据可视化」版 ...

最新文章

  1. 大量数据转移_大量数据
  2. Android Studio ndk-Jni开发详细
  3. 最强写作AI竟然学会象棋和作曲,语言模型跨界操作引热议,在线求战
  4. Python 技术篇-系统、环境变量配置后python不生效问题解决方法,python服务命令行重启方法
  5. STL工作笔记-map中关于erase返回值的操作
  6. python如何创建一个类_python 3——自定义一个类、object类
  7. 为何主程序退出了,创建的多线程还在运行呢?
  8. 可视化——matplotlib常用api(一)
  9. android下载 sdk 的两个代理 ,解决下载sdk慢的问题
  10. JAVA的对象创建与调用的内存解析
  11. 将Excel数据批量生成条形码
  12. HFSS仿真结果输出
  13. matlab中输入数学符号,matlab 数学符号输入
  14. 用计算机如何打对数,怎样使用科学计算器计算对数?
  15. 基于Java实现一个简单的记事本Android App
  16. matlab 5 .封装:幅频特性
  17. 2020python考试题库_大学mooc2020用Python玩转数据期末考试公众号答案
  18. 软件测试 | 期末复习——软件测试综述
  19. html5 树开花效果,几种不用经常照顾的灌木花卉,开成花树后太美了
  20. plt.subplot()函数解析(最清晰的解释)

热门文章

  1. c 语言的电梯调度算法,电梯调度算法
  2. java随机生成1~5的整数
  3. dell 各系列服务器区别,戴尔全新12G服务器全系列概述介绍
  4. Go基础系列 01-Golang简介
  5. CString实现机理_转自数字英才
  6. 流量累计程序 博途v15编写的西门子流量累计程序
  7. Java高级之Git
  8. 毕业设计——基于STM32的智能窗户系统(物联网、智能家居、APP控制、APP显示温湿度等信息、自动工作模式)
  9. c语言编程格式缺少语句,17个C语言新手编程时常犯的错误及解决方式
  10. 使用ventoy制作PE(可同时存在多个PE)——(有图文)