暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Excel图表学习76:Excel中使用超链接的交互式仪表图

完美Excel 2021-08-15
628

学习Excel技术,关注微信公众号:

excelperfect


引言:今天制作的图表来源于chandoo.org,很cool

 

本文展示一份基于超链接的交互式仪表图,如下图1所示:

1

 

怎么样?是不是让你印象深刻?

 

要创造这样一份图表,只需要一堆数据、一张图表、一行VBA代码和一些小技巧。

 

1.示例数据

仔细观察图1,会发现我们只有一个图表,并且根据用户选择的选项来更改图表的源数据。因此,假设有4个系列的数据——销售额、成本、利润和顾客数量,我们将添加第五个系列。这将始终显示用户选择的系列的数据,如下图2所示。

2

 

让我们将第五列中的系列名称称为“valSelOption”。

 

注意:使用这个系列名称,可以使用MATCH公式从4个系列中获取该系列的位置,知道位置后,就可以使用INDEX公式获取相应的值。

 

2.创建图表

只需根据上图25列中的数据创建图表,可以根据需要对其进行格式化。

 

3.创建仪表区域

有点棘手,但也很容易。只需设置4列区域(因为有4个图表),这样就可以放置图表和鼠标悬停单元格以供选择,如下图3所示。

3

 

4.创建翻转效果

需要一个简单的宏或UDF(用户自定义函数)来根据用户鼠标指向的位置来更改系列。然而,如何在鼠标悬停时激活该UDF?这就是我们可以使用超链接的地方。

 

你知道可以使用UDF作为超链接的来源吗?就像:

=HYPERLINK(“http://test.com”,”点击这里”)

也可以这样:

=HYPERLINK(自定义的函数名,”点击这里”)

 

此时,当你点击这个链接时,Excel将运行你的函数。

 

但是,还不止如此。当你将鼠标放在链接上时,Excel也会运行该函数。无需点击!

 

我们知道,Excel不允许函数更改其他单元格中的值或者对其格式化。然而,如果从超链接来使用函数,则该限制不适用!!!

 

因此,我们编写了仅一行代码的自定义函数:highlightSeries

Public Function highlightSeries(seriesName AsRange)

   Range("valSelOption") = seriesName.Value

End Function

 

此函数将系列名称作为变量并将其赋值给命名区域valSelOption。随着valSelOption的变化,图表的数据也会发生变化,得到新的图表。

 

假设系列名称在单元格区域B3:E3,我们在所有4个单元格中输入超链接公式。例如,在单元格B6中,输入公式:

=IFERROR(HYPERLINK(highlightSeries(B3)),"6")

 

注意,虽然在HYPERLINK函数中使用UDF可以解决问题,但Excel也会抛出错误#VALUE!错误,我们使用IFERROR函数来修复。使用webdings字体,数字6显示为向下箭头符号。

 

注意,对超链接单元格进行自动换行,以便在鼠标悬停在单元格上的任意位置时链接有效,而不仅仅是向下箭头符号。

 

5.添加条件格式

为了使仪表图看起来更具交互性,可以添加条件格式来对鼠标悬停的单元格应用相应的格式,如下图4所示。

4

 

至此,大功告成!


欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。

文章转载自完美Excel,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论