鼠标指示动态图表制作
今天我们来学习鼠标指示动态图表制作,只需要通过移动鼠标而不需要单击就可以得到相应的图表信息。下图,是一份几家不同的店铺中不同年份的电子产品表:
现在想做一份如下的动态趋势图:
整体图如下:
具体的效果是,我们只需通过鼠标的移动,来自动查看某个店铺某款产品的近几年销量情况。看到任何一个图表,首先我们需要好好地观察一下图中的所有效果,然后想办法一一攻克。闲话不多说了,来看下操作:
1、很明显我们需要一个用于放基础数据的表格:
这里设置如下,起始行后的单元格用于定位店铺的起始位置,起始列后的单元格用于定位产品类型的起始位置。然后我们观察到,鼠标每次移动到不同的位置时,会发生四个变化。即:起始行和起始列数值的变化、每个年份的销售数据发生了变换、折线图发生了动态变化、鼠标所到之处的单元格颜色会自动变化以突出显示。注意没有任何的单击鼠标动作噢,是不是感觉很智能呢?别急,往下看。
2、其实起始行和起始列数值的变化、每个年份的销售数据发生了变换、折线图发生了动态变化这三个是连带的,只要我们解决了始行和起始列数值的变化这个问题,后面的两个变化是自动的。好了,现在我们的主要问题就是解决当鼠标每次移动到不同的位置时,起始行和起始列数值会自动更新。这里呢,我们需要事先自定义两个函数,如下图:
这两个函数用于获取某个单元格的行号和列号。然后在H7单元格中输入如下公式:
继续在H8单元格、H9单元格、H10单元格分别输入公式:
=IFERROR(HYPERLINK(QSH($A$7)),$A$7)
=IFERROR(HYPERLINK(QSH($A$12)),$A$12)
=IFERROR(HYPERLINK(QSH($A$17)),$A$17)
这四个公式既显示了各自的店铺名称,同时调用了自定义函数实现了动态引用店铺的起始行号,HYPERLINK很好地自动触发了调用自定义函数。
那么列号是同样的道理,在I6单元格、J6单元格、K6单元格、L6单元格分别输入公式:
=IFERROR(HYPERLINK(QSl($C$1)),$C$1)
=IFERROR(HYPERLINK(QSl($D$1)),$D$1)
=IFERROR(HYPERLINK(QSl($E$1)),$E$1)
=IFERROR(HYPERLINK(QSl($F$1)),$F$1)
既显示了各自的产品类型,同时调用了自定义函数实现了动态引用店铺的起始列号。
3、调用某个店铺某个产品的数据。既然我们得到了起始行号和列号,那么就很容易引用它们的销售数据了,在H2单元格、I2单元格、J2单元格、K2单元格、L2单元格、M2单元格中分别输入如下公式:
=INDIRECT("a" &I3)
=OFFSET($A$1,$I$3-1,$I$4-1,1,1)
=OFFSET($A$1,$I$3,$I$4-1,1,1)
=OFFSET($A$1,$I$3+1,$I$4-1,1,1)
=OFFSET($A$1,$I$3+2,$I$4-1,1,1)
=OFFSET($A$1,$I$3+3,$I$4-1,1,1)
4、鼠标移动时,单元格颜色会自动变化的功能。这里我们运用了条件格式,很明显每个店铺的起始行号以及产品类型的起始列号都是唯一的,所以我们可以利用条件格式来完成填充颜色(本案例填充颜色设置为白色)的功能,这里以H7单元格为例说明一下:
然后在格式里把单元格的填充颜色设置为白色,其他的以此类推即可。
5、插入一个折线图,美化一下即可!
后记:本案例的综合型还是蛮高的,尤其是要理解超链接函数HYPERLINK的用法以及自定义函数的妙用~