【问题标题】:Avoid Excel Chart streching line till end after series flattens在系列变平后避免Excel图表拉伸线直到结束
【发布时间】:2022-01-16 04:23:05
【问题描述】:

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

Data

我想绘制一个像这样的折线图-

但我得到了这个-

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

【问题讨论】:

    标签: excel excel-formula excel-2016 excel-charts


    【解决方案1】:

    假设您的数据排列如下:

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

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

    这会给:

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


    警告

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

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

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

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

    类似这样的:

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

    解释:

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

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

    【讨论】:

    • 那么如果值减少会发生什么?许多绘制的数据随着时间的推移既增加又减少。那么你的答案需要如何改进呢?
    • @SolarMike 当数据减少时它实际上工作,如果数据在到达结束之前保持不变,它就不起作用。我认为我不必提及减少,因为问题中的所有图表和数据从未显示任何减少,但我已经编辑了我的答案以澄清。
    • 我已经解决了这个问题。最好的解决方案是这样的——首先,从原始表中找到每列的最大值,然后使用公式=IF(N(B1)=MAX(H$0:H0),NA(),B1)
    • @shyamsantoki 感谢您提供解决方案!我仍然认为我的答案可能有助于解决您遇到的问题的更一般情况,因此我已为此编辑了答案帐户。
    【解决方案2】:

    所以为了解决我的问题,我又创建了一张表并应用了公式=IF(MAX(B$1:B$8)=H1,NA(),B2)。此公式计算源表列的最大值并将其与上立即值进行比较。新表是这样的-

    这个表的范围是从G1:K8

    【讨论】:

    • 我猜如果你的数据集中的一个序列不可能达到最大值,那么在再次上升之前下降;这更优雅!
    【解决方案3】:

    替换零。

    使用 na()

    因为没有绘制。

    见:

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

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

    【讨论】:

    • 我会试试的。
    • 这个答案并没有真正解决问题的结尾,询问一种自动化流程的方法。
    • @DecimalTurn 但它确实适用于增加或减少的值。
    【解决方案4】:

    1-选择一列(或多列)以查找重复数据。

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

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

    4-按确定按钮

    这是你想要的吗?

    【讨论】:

    • 很遗憾,我不能使用这种方法,因为在达到最大值之前列中有一些重复项。
    猜你喜欢
    • 2015-12-22
    • 2010-10-14
    • 2015-02-15
    • 2013-04-17
    • 2011-09-06
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    相关资源
    最近更新 更多