分享

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

 hercules028 2021-08-15

excelperfect

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

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

图片

图1

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

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

1.示例数据

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

图片

图2

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

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

2.创建图表

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

3.创建仪表区域

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

图片

图3

4.创建翻转效果

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

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

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

也可以这样:

=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

至此,大功告成!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多