在Excel中创build一个忽略#N / A或空白单元格的图表
我正在尝试创build一个dynamic数据系列的图表。 图表中的每个系列都来自绝对范围,但只有一定范围内的数据可能有数据,其余的将是#N/A
问题是图表将所有#N/A
单元格作为值而不是忽略它们。 我已经通过使用命名的dynamic范围(即插入>名称>定义),但这是非常低效的,因为每个图表有4个dynamic系列,我必须制作25这些图表。
有没有其他解决scheme可以让我为数据系列指定一个范围,但是告诉图表忽略所有“#N / A”或空白单元格?
我遇到了同样的问题,通过使用IF语句将不需要的值返回给“”,并且图表将按照您的描述进行操作。
但是,当我使用#N/A
而不是""
(重要的是,请注意它没有#N #N/A
的引号而不是"#N/A"
),图表忽略了无效数据。 我甚至试图把一个无效的FALSE
语句,它的工作原理是一样的,唯一的区别是#NAME?
作为单元格中的错误而不是#N/A
。 我将用一个组成的IF语句向你展示我的意思:
=IF(A1>A2,A3,"") ---> Returned "" into cell when statement is FALSE and plotted on chart (this is unwanted as you described) =IF(A1>A2,A3,"#N/A") ---> Returned #N/A as text when statement is FALSE and plotted on chart (this is also unwanted as you described) =IF(A1>A2,A3,#N/A) ---> Returned #N/A as Error when statement is FALSE and does not plot on chart (Ideal) =IF(A1>A2,A3,a) ---> Returned #NAME? as Error when statement is FALSE and does not plot on chart (Ideal, and this is because any letter without quotations is not a valid statement)
当您将图表引用到定义的范围时,将绘制该范围内的所有点,将(为绘图而定)误差和空白解释为空值。
您可以select将其作为空(空格)或强制为零值。 但是这些都不会调整图表系列数据所指向的范围。 从我所收集的信息来看,这些都不合适。
如果隐藏 #N / A数据所在的整个行/列 ,图表应该完全忽略它们。 您可以通过右键单击|手动执行此操作 隐藏行或使用表格AutoFilter。 我认为这是你想要完成的。
请注意,在绘制折线图时,使用= NA()(输出#N / A)来避免绘制不存在的值将仅适用于每个系列的结尾,即第一个和最后一个值。 两个其他值之间的#N / A将被忽略和桥接。
你是正确的空白“”或string“#N / A”确实被解释为在Excel中的值。 您需要使用函数NA()。
你可以使用函数“= IF(ISERROR(A1); 0; A1)”,如果单元格A1包含一个errore,它将显示零,否则显示为真值。
如果您想要分散绘制一个x
和y
列,但不是其中一个列中的所有单元格都填充了有意义的值(即其中一些列具有#DIV/0!
),则在列中插入一个新列违规列和type =IFERROR(A2, #N/A)
,其中A2是违规列中的值。
如果有#DIV/0!
这将返回#N/A
#DIV/0!
否则返回良好的价值。 现在用你的新列来绘制你的图,Excel忽略#N #N/A
值,不会将它们绘制为零。
重要提示 :不要在公式中输出"#N/A"
,只输出#N/A
只是想把我的2cents在这个问题上… … –
我有一个类似的需求,我通过INDEX / MATCH从另一个表中提取数据,由于不匹配,很难区分实际的0值和0值(例如,显示进度价值在12个月内,我们只在2月份,但其余的月份数据还没有提供,列图表仍然显示0到3月至12月无处不在)
我最终做的是创build一个新的系列,并将这个新的系列图作为折线图绘制出来 ,然后我通过select不显示行中的选项来隐藏折线图,并将数据标签放在顶部,公式对于这个新系列的价值是这样的:
= IF(LEN([@ [column1]])= 0, NA() ,[@ [column1]])
我使用LEN作为validation,因为ISEMPTY / ISBLANK没有工作,因为INDEX / MATCH的结果总是返回一个空白以外的东西,即使我在IFERROR之后放了一个“…”
在折线图上的错误值NA()使得它的值不显示…所以这个解决了我…
我猜这个程序没有图片是有点困难的,但是我希望它能绘制某种图片,让你可以使用一个解决方法,如果你有类似的情况就像我的
一种解决scheme是图表/graphics不显示隐藏的行 。
你可以testing这个function:1)右键点击行号2)点击隐藏。
为了做到这一点,这是简单的代码:
For Each r In worksheet.Range("A1:A200") If r.Value = "" Then r.EntireRow.Hidden = True Else: r.EntireRow.Hidden = False Next
还有一个不太为人所知的解决scheme,在某些地方有优点。 使用#NULL! 不绘制的错误,不会为绘图创build零点。
所以你的情节栏填充了以下构造。 假设列A中的实际数据,并且绘制的版本在列C中。
= If(数量(A2),A2,A2 A3)
这个空间是一个小的已知算子产生两个单元格地址或范围的交集。 如果没有交集,那么它会产生消息#NULL!
包含#NULL! 跳过绘图的目的。
Aside(对于微软)只需要让math公式忽略这样的单元格?
这是我发现,因为我只绘制了每个4列的3个单元集中在一起。 我的图表有一个与我的X轴date合并单元格。 问题:BC26-BE27在我的图表上绘制为零。 在这里input图像描述
我点击图表侧面的filter,find它显示数据点的所有列的位置。 我取消选中没有值的框。 在这里input图像描述
它为我工作。
我有一个类似的问题,使用X / Y图表,但也需要计算两组数据的相关函数。
=IF(A1>A2,A3,#N/A)
允许绘制图表,但X
和Y
相关性失败。
我解决了这个=IF(A1>A2,A3,FALSE)
然后可以使用条件格式或其他技巧removed
FALSE
如果您在图表上使用垂直刻度(使用格式轴)从0.0001运行(例如),那么Excel认为是零的值将不会被绘制。 图表中的坐标轴仍然看起来像从零开始向上运行。
如果您使用PowerPivot和PivotChart,则会排除不存在的行。
我find了一个方法来做到这一点。
你可以做一个x,y散点图。 它会忽略空logging(即行)
最好的方法是使用空
Dim i as Integer For i = 1 to 1000 If CPT_DB.Cells(i, 1) > 100 Then CPT_DB.Cells(i, 2) = CPT_DB.Cells(i, 1) Else CPT_DB.Cells(i, 2) = Empty //********************** End If Next i
我有一个完整的线出现相同的问题。
我的数据的结尾只有#N / A。
当我将图表types从堆栈行更改为行时 , 行的末尾已从图表中删除。
如果#N / A在数据的中间,那么这是行不通的,只有在数据的尾部。