避免 Excel 图表在系列变平后拉伸线直到结束

Avoid Excel Chart streching line till end after series flattens

我有一个 table 总共 12 列和 30 行。 table 如下所示。请注意,真实数据与此有很大不同,但遵循此模式 - 值上升到某个数字并在所有行中不断重复。

Data

我想绘制一个如下所示的折线图-

但我得到这个-

我可以通过手动删除 table 中的重复值来获得预期的图表。我正在寻找一种自动执行此操作的方法。

1-Select 一列(或多列)查找重复数据。

2-打开功能区顶部的“数据”选项卡。

3-找到“数据工具”菜单,然后单击“删除重复项”。

4-按确定按钮

这是你想要的吗?

替换零。

使用 na()

因为没有绘制。

见:

额外的好处:如果在蓝色系列上将重叠设置为 100%,那么看起来第一个系列中的值被“突出显示”了 - 在讨论数据时,这是一种集中注意力的好方法。

编辑,无论前面的值增加还是减少,这都有效:

假设你的数据是这样排列的:

您可以使用以下公式创建另一个 table 引用第一个:

所以基本上,H4 中的这个公式 =IF(B3-B2=0,NA(),B3) 复制粘贴到除第一行以外的所有单元格中。

这会给出:

并且绘制第二个 table 会给你想要的结果,因为没有绘制 NA(正如 Solar Mike 提到的那样)。


警告

只有当每行的值都严格增加或减少时,这才有效。如果在系列结束之前的 2 个数据点之间没有变化,它永远变平,那么你的线中就会有缺失点。

例如,如果 2020.Q2 以连续两个零开头,您会在需要之前出现 NA。

因此,您仍然需要手动替换这些 NA。

但是如果你想使整个过程自动化,你可以添加另一个 table 检查 NA 之后是否有非 NA 值,如果有则将其更改回以前的数字。

像这样:

在此解决方案中,O3 中的公式必须为:=IF(AND(ISNA(I3),PRODUCT(IF(NOT(ISNA(I4:I)),0,1))=0),I2,I3)

解释:

  • I4:I 是当前单元格之后的值范围。我们使用 $ 以便范围锚定到最后一行。
  • IF(NOT(ISNA(I4:I)),0,1) returns 一个数组,当存在非 NA 值时用 0 填充,当值为 NA 时用 1 填充。
  • PRODUCT(IF(NOT(ISNA(I4:I)),0,1))=0 检查数组中元素的乘积是否为 0。由于乘积的值为零只需要一个零,因此这实质上检查是否至少有一个非 NA当前值之后的值。

编辑: 如果数据集中的系列不可能在结束前达到最大值,那么 就简单多了。但是,我建议的方法更通用,因为无论该系列是在最大值、最小值还是介于两者之间的任何位置变平,它都有效。

所以为了解决我的问题,我又创建了一个 table 并应用了公式 =IF(MAX(B:B)=H1,NA(),B2)。此公式计算源 table 列的最大值,并将其与较高的立即值进行比较。新 table 看起来像这样-

这个 table 的范围来自 G1:K8