动态图表这个没什么了不起的,大多数人都会做。不过今天这种,估计你以前从没见过。
效果图:将鼠标悬停在某一选项上时(神奇之处在于,鼠标这里没有点击内容),图表能够自动展示对应的数据系列。
利用函数结合VBA代码制作动态图表,当鼠标悬停在某一选项上时,图表能够自动展示对应的数据系列。
操作步骤如下。
Step 01 按Alt+F11组合键打开VBE窗口,在VBE窗口中依次单击“插入”→“模块”,然后在模块代码窗口中输入以下代码,最后关闭VBE窗口。
Function techart(rng AsRange)
Sheet1.[g1] = rng.Value
End Function
这个代码什么意思啊?Sheet1.[g1]是什么意思?
这是在VBE里面自定义一个名为techart的函数。代码中的Sheet1.[g1]为当前工作表的G1单元格,G1单元格主要用来获取触发后的分类,可根据实际表格情况设置单元格地址。
Step 02 在G1单元格中任意输入一个分类名称,如口红,在G2单元格中输入以下公式,向下复制到G13单元格。
=HLOOKUP(G$1,B$1:E2,ROW(),)
Step 03 选中G1:G13单元格区域,在“插入”选项卡中单击“插入柱形图或条形图”命令,选择“簇状柱形图”。
单击图表柱形系列,在编辑栏更改SERIES函数第二参数为A2:A13单元格区域,美化图表。
Step 04 使用公式制作动态分类。
选中J2单元格,输入公式,右拉。
=IFERROR(HYPERLINK(techart(B1)),B1)
公式中的techart,是之前在VBE代码中自定义的函数,将各产品的列标签单元格引用作为自定义函数的参数,再使用HYPERLINK函数触发自定义函数。由于HYPERLINK的结果会返回错误值,因此使用IFERROR屏蔽错误值,将错误值显示为对应的产品名称。
提示:HYPERLINK函数,创建了一个超链接,当鼠标移动到超链接上时,会出现“屏幕提示”,同时鼠标指针由“正常选择”切换为“链接选择”,当鼠标停留在超链接文本上时,超链接会读取HYPERLINK函数的第一参数返回的路径,作为“屏幕提示”的内容,此时,就会触发执行第一参数中的自定义函数。
Step 05 设置单元格条件格式。
选择J2:M2单元格区域,设置“填充颜色”为浅绿色。然后依次单击“开始”→“条件格式”→“新建规则”,打开“新建格式规则”对话框。单击“使用公式确定要设置格式的单元格”,然后在“为符合此公式的值设置格式”编辑框中输入以下公式。
=J2=$G$1
单击“格式”按钮打开“设置单元格格式”对话框。切换到“字体”选项卡,设置字体颜色为白色。再切换到“填充”选项卡,设置填充颜色为绿色。最后单击“确定”按钮关闭对话框。设置条件格式的作用是凸显当前触发的产品名称。
Step 06 在J1单元格输入以下公式作为动态图表的标题。设置后将图表与单元格对齐。
=G1&"2018年销售趋势"
至此,图表制作完成。由于使用了VBA代码,所以要将工作簿保存为“Excel 启用宏的工作簿(*.xlsm)”格式。
动态图表好像也没那么难,主要还是要基础牢固,然后利用各种技能来实现就很容易了。