我有一个包含大量系列图表的图表。 不知何故,这些系列太多了,所以我想只绘制其中一些。 我可以通过手工复制表格并删除不必要的行来“静态地”执行此操作,但显然,我更喜欢更动态的内容,因为不断推出新系列。
通常,我只想绘制达到某个阈值或某个等级的系列。我可以测试条件,并返回结果,例如0或1。
现在,我不知道如何使用此信息动态选择将绘制到图表中的系列。它甚至可能吗?
答案 0 :(得分:2)
涉及表及其过滤器的另一种方法。这是起始表,第一列中的系列名称,第一行中的类别,最后一列有一些测试值的公式,返回true或false。
使用除最后一个表之外的表的所有列插入图表,并且您可能必须切换行和列,因此系列按行绘制。
单击测试列标题中的自动过滤器下拉列表,在“数字过滤器”下,选择“等于”,然后在框中输入“True”。
您的测试公式不需要返回true或false,它可能只计算值的函数或任何您想要的函数。只需选择合适的过滤条件即可隐藏您不想在图表中显示的内容。
答案 1 :(得分:1)
是
使用动态范围非常适合图表。这个
有两个典型的应用使用已知序列的动态范围,但系列数据集的长度是可变的。Stephen Bullen's FunChrt1.zip是此技术的一个很好的例子。 无需VBA
当系列本身的数量可变时,需要一些基本的VBA,因为当动态范围被指定为源数据范围时,它变为硬编码(不像特定图表系列的定义名称保持“直播” “)。 这听起来像是您的查询方法。 Jon Peltier在Dynamic Chart Source Data
答案 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快