按选定单元格绘制图表

假设你我需要将下表中的数据与2021年不同国家的汽车销量值进行可视化(实际数据取自这里,顺便提一下):

按选定单元格绘制图表

由于数据系列(国家/地区)的数量很大,试图一次将它们全部塞进一张图表会导致糟糕的“意大利面条图”或为每个系列构建单独的图表,这非常麻烦。

这个问题的一个优雅的解决方案是只在当前行的数据上绘制图表,即活动单元格所在的行:

实现这一点非常容易——您只需要 3 行中的两个公式和一个小宏。

Step 1. 当前行号

我们需要的第一件事是一个命名范围,它计算我们活动单元格现在所在的工作表上的行号。 在选项卡上打开 公式 - 名称管理器 (公式 - 名称管理器),点击按钮 创建 (创建) 并在那里输入以下结构:

按选定单元格绘制图表

这里:
  • 名字 – 任何适合我们变量的名称(在我们的例子中,这是 TekString)
  • 面积 – 此后,您需要选择当前工作表,以便创建的名称是本地的
  • 范围 – 这里我们使用函数 CELL (细胞),它可以为给定的单元格发出一堆不同的参数,包括我们需要的行号——“行”参数负责这个。

步骤 2. 链接到标题

要在图表的标题和图例中显示选定的国家/地区,我们需要从第一列获取对具有其(国家)名称的单元格的引用。 为此,我们创建另一个本地(即 面积 = 当前工作表,而不是 Book!)具有以下公式的命名范围:

按选定单元格绘制图表

在这里,INDEX 函数从给定范围(A 列,我们的签署国所在的位置)中选择一个具有我们之前确定的行号的单元格。

步骤 3. 链接到数据

现在,以类似的方式,让我们获取一个包含当前行中所有销售数据的范围的链接,活动单元格现在位于该范围。 使用以下公式创建另一个命名范围:

按选定单元格绘制图表

在这里,第三个参数为零,它导致 INDEX 不是返回单个值,而是返回整个行作为结果。

步骤 4. 替换图表中的链接

现在选择表格标题和第一行数据(范围)并使用基于它们构建图表 插入 - 图表 (插入——图表). 如果您在图表中选择了包含数据的行,则该函数将显示在公式栏中 (系列) 是 Excel 在创建任何图表以引用原始数据和标签时自动使用的特殊功能:

按选定单元格绘制图表

让我们小心地将函数中的第一个(签名)和第三个(数据)参数替换为步骤 2 和 3 中的范围名称:

按选定单元格绘制图表

图表将开始显示当前行的销售数据。

步骤 5. 重新计算宏

最后的接触仍然存在。 Microsoft Excel 仅在工作表上的数据发生更改或按下某个键时才重新计算公式 F9,并且我们希望在选择更改时进行重新计算,即当活动单元格在工作表上移动时。 为此,我们需要在工作簿中添加一个简单的宏。

右键单击数据表选项卡并选择命令 来源 (源代码). 在打开的窗口中,输入选择更改事件的宏处理程序代码:

按选定单元格绘制图表

正如您可以轻松想象的那样,它所做的只是在活动单元格的位置发生变化时触发工作表重新计算。

第 6 步:突出显示当前行

为清楚起见,您还可以添加条件格式规则以突出显示图表上当前显示的国家/地区。 为此,请选择表并选择 主页 — 条件格式 — 创建规则 — 使用公式确定要格式化的单元格 (主页 - 条件格式 - 新规则 - 使用公式确定要格式化的单元格):

按选定单元格绘制图表

在这里,公式检查表中的每个单元格的行号是否与存储在 TekRow 变量中的数字匹配,如果匹配,则触发使用所选颜色的填充。

就是这样——简单而美丽,对吧?

  • 在大表上,所有这些美感都会减慢 - 条件格式是一种资源密集型的事情,并且每个选择的重新计算也可能很繁重。
  • 当意外选择表格上方或下方的单元格时,为防止数据在图表上消失,您可以使用表格的嵌套 IF 函数向 TekRow 名称添加额外的检查:

    =IF(CELL(“行”)<4,IF(CELL(“行”)>4,CELL(“行”)))

  • 突出显示图表中的指定列
  • 如何在 Excel 中创建交互式图表
  • 坐标选择

发表评论