【发布时间】:2022-01-16 04:23:05
【问题描述】:
我有一个总共 12 列和 30 行的表。该表如下所示。请注意,实际数据与此非常不同,但遵循此模式 - 值上升到某个数字并在所有行中不断重复。
我想绘制一个像这样的折线图-
但我得到了这个-
我可以通过手动删除表格中的重复值来获得预期的图表。我正在寻找一种自动执行此操作的方法。
【问题讨论】:
标签: excel excel-formula excel-2016 excel-charts
我有一个总共 12 列和 30 行的表。该表如下所示。请注意,实际数据与此非常不同,但遵循此模式 - 值上升到某个数字并在所有行中不断重复。
我想绘制一个像这样的折线图-
但我得到了这个-
我可以通过手动删除表格中的重复值来获得预期的图表。我正在寻找一种自动执行此操作的方法。
【问题讨论】:
标签: excel excel-formula excel-2016 excel-charts
您可以使用以下公式创建引用第一个表的另一个表:
所以基本上,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 会更简单。但是,我建议的方法更通用,因为无论序列在其最大值、最小值还是介于两者之间的任何地方都变平,它都有效。
【讨论】:
=IF(N(B1)=MAX(H$0:H0),NA(),B1)。
1-选择一列(或多列)以查找重复数据。
2-打开功能区顶部的“数据”选项卡。
3-找到数据工具菜单,然后单击删除重复项。
4-按确定按钮
这是你想要的吗?
【讨论】: