excel图表上的动态系列选择

时间:2011-11-25 22:56:11

标签: excel

我有一个包含大量系列图表的图表。 不知何故,这些系列太多了,所以我想只绘制其中一些。 我可以通过手工复制表格并删除不必要的行来“静态地”执行此操作,但显然,我更喜欢更动态的内容,因为不断推出新系列。

通常,我只想绘制达到某个阈值或某个等级的系列。我可以测试条件,并返回结果,例如0或1。

现在,我不知道如何使用此信息动态选择将绘制到图表中的系列。它甚至可能吗?

4 个答案:

答案 0 :(得分:2)

涉及表及其过滤器的另一种方法。这是起始表,第一列中的系列名称,第一行中的类别,最后一列有一些测试值的公式,返回true或false。

使用除最后一个表之外的表的所有列插入图表,并且您可能必须切换行和列,因此系列按行绘制。

Unfiltered table and chart

单击测试列标题中的自动过滤器下拉列表,在“数字过滤器”下,选择“等于”,然后在框中输入“True”。

Filtered table and chart

您的测试公式不需要返回true或false,它可能只计算值的函数或任何您想要的函数。只需选择合适的过滤条件即可隐藏您不想在图表中显示的内容。

答案 1 :(得分:1)

使用动态范围非常适合图表。这个

有两个典型的应用
  1. 使用已知序列的动态范围,但系列数据集的长度是可变的。Stephen Bullen's FunChrt1.zip是此技术的一个很好的例子。 无需VBA

  2. 当系列本身的数量可变时,需要一些基本的VBA,因为当动态范围被指定为源数据范围时,它变为硬编码(不像特定图表系列的定义名称保持“直播” “)。 这听起来像是您的查询方法。 Jon Peltier在Dynamic Chart Source Data

  3. 上报道了这一点

答案 2 :(得分:1)

这是一种需要使用公式的额外数据,但不需要VBA的方法。

假设范围A包含您的数据。将公式放在此范围上方(或下方)的行中,该范围确定范围是否符合标准。

构造范围B,与A的大小相同,公式如下: = IF(A1,A2,NA()) 其中A1是该列数据的测试单元(即图表的该列)。如果A1为真,则A2的值出现在此单元格中,否则您将获得#N / A.

使用范围B构建图表。不会绘制任何#N / A的系列。

要避免混乱的图例,请使用范围B创建图表,但暂时将所有测试单元格设置为true,以便显示所有系列。然后将数据标签添加到每个系列的最后一个点(请参阅Label Last Point Updated Add-In)并终止图例。现在编写适当的测试公式。

答案 3 :(得分:1)

另一个选择,跟随这里最后一篇文章的脚步,因为我有同样的问题。

我有一个带有汇总表和图表的“显示”区域。我的源数据在另一个标签上。我在列中有许多系列,我希望用户能够选择显示,这些列位于我的“显示”区域的右侧。这两个系列有两组,范围A和范围B

'显示'区域在图表右侧运行我有一个复选框列表(在系列更改时手动添加)。单元格主页设置为范围A中匹配系列列上方的一个单元格。范围A具有动态范围,可使用DMIN和一些DMAX公式设置范围A左下方的日期。

为了避免宏排序问题,我有第二个范围,范围B是动态的,因为第一列从范围A中选取第一个“TRUE” - 由关联的复选框设置。来自第一个TRUE的所有相关数据(包括系列名称)列在其下方。日期范围只与范围A相关联。

现在有了图表范围的OFFSET公式,从范围B开始,我有一个动态的系列数,图表范围由范围A设置,流经范围B到图表

我有61个系列,当用户选择“全部”并且每周有3年的日期时可能会变得混乱,但整个事情只需要5秒钟刷新,这低于我的用户阈值6秒。

捕获的是按顺序找到并显示TRUE标记的系列。我的系列实际上是分组的,所以我希望它们保持整齐。 ARRAY公式将我减慢到9秒,但是沿着Range A TRUE行跳过的嵌套IF更快,下降到5秒。计算缓慢的原因在这里不适用,但嵌套的IF比ARRAYs快