首页 文章

excel图表上的动态系列选择

提问于
浏览
3

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

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

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

4 回答

  • 1

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

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

    Unfiltered table and chart

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

    Filtered table and chart

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

  • 2

    是 .

    使用动态范围非常适合图表 . 这有两个典型的应用

    • 使用已知系列的动态范围,但系列数据集的长度是可变的 . Stephen Bullen's FunChrt1.zip是这种技术的一个很好的例子 . 无需VBA

    • 当系列本身的数量可变,而某些基本VBA是必需的,因为当动态范围被指定为源数据范围时,它变为硬编码(与特定图表系列的定义名称保持"live"不同) . 这听起来像您的查询方法 . Jon Peltier在Dynamic Chart Source Data报道了这个

  • 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)并终止图例 . 现在编写适当的测试公式 .

  • 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比ARRAY更快

相关问题