马震安
打开数据工作表,切换到“开发工具”选项卡(如果没有这个选项卡,点击“文件→选项”,在弹出的“Excel选项”窗口中选择“自定义功能区”,然后勾选“开发工具”就可以了),点击“Visual Basic”,在出现的VBA窗口中,点击“插入→模块”,在代码窗口输入图中所示的3行简单代码(图2)。
要想图表具有交互性,还需要对原数据进行一下改造。在A2单元格输入“=IFERROR(HYPERLINK(changetmp(A2)),"A部门")”,在A3单元格输入“=IFERROR(HYPERLINK(changetmp(A3)),"B部门")”,本列单元格的输入内容依此类推(图3)。
切换到“公式”选项卡,点击“名称管理器”,在弹出的窗口点击“新建”,在新弹出窗口的“名称”处输入“TEMP”,“引用位置”处输入“=OFFSET(Sheet1!$A$1,MATCH(Sheet1!$P$1,Sheet1!$A$2:$A$5,0),1,1,12)”。这样,就为图表构建了数据源(图4)。
选中一空白单元格,插入一个带数据点的折线图。右击这个空白图表,选择“选择数据”,在新弹出窗口的“图例项”处点击“添加”,在弹出窗口的“系列值”处输入“=SHEET1!TEMP”,确定;在“水平(分类)轴标签”处点击“编辑”,轴标签区域选择“=Sheet1!$B$1:$M$1”。这样,图表就构建完成了,当鼠标在各部门滑过,图表交互的效果就出现了(图5)。
在Q1单元格输入“=$P$1&"2019年1-12月销售变化情况"”,选中图表标题,在公式编辑栏输入“=Sheet1!$Q$1”(或者将光标点击到公式编辑栏后,用鼠标点取Q1单元格)。这样,图表标题也会随着变化(图6)。
为了让图表看起来更加漂亮,需要对图表进行进一步的美化处理。删除图表的横向网格线,右击图表的纵坐标轴,选择“设置坐标格式”,在坐标轴选项中,“最大值”处设置为“120”,删除纵坐标轴;切换到“图表设计”选项卡,点击“添加图表元素→数据标签→上方”,设置好标签所需要的字体、颜色及大小;选中图表中的数据点,在右侧的“设置数据系列格式→填充与线条→标记”选项卡中,“标记选项”处选择“内置”,“类型”处选择图片,在弹出的窗口选择所需要的图片,“边框”处选择“无线条”;设置好横坐标轴的字体颜色及大小等(图7)。
因为交互过程用到了VBA代码,所以需要将文件保存成启用宏的文件。点击“文件一另存为”,在弹出的窗口输入所需文件名,保存类型处选择“Excel启用宏的工作簿”,点击“保存”就可以了(图8)。